json - 在 MVC 3 中捕获正确 JSON 格式的错误时,如何使用 ELMAH 记录错误

标签 json asp.net-mvc-3 elmah

我有一个 ASP.NET MVC 3 应用程序,我在其中进行 AJAX 调用并期望返回 JSON 结果。我正在使用 ELMAH 记录错误。在测试时我遇到了意外错误。 ELMAH 记录了错误,但我的客户端脚本没有记录,因为现在结果不是正确的 JSON。如果我处理 Controller 中的所有错误以返回正确的 JSON 结果,则 ELMAH 不会记录错误。我知道我可以专门调用 ELMAH 来记录错误,但我更喜欢我不必在其他任何地方这样做。

谁能阐明处理这种情况的“正确”方法?

例如

    try
{
                //service.dosomethingwitherror();
    return new JsonResult { Data = new { result = true, message = "Success." } };
}
catch (Exception ex)
{
    return new JsonResult { Data = new { result = true, message = "Failed." } };
}

因为我正在“处理”这个,所以 ELMAH 不会记录。如果我不处理这个问题,我的客户将不会获得 JSON...

最佳答案

您可以使用 ErrorSignal 类手动记录。这将执行所有已配置的 elmah 操作(日志、邮件、推文等)。

ErrorSignal.FromCurrentContext().Raise(new NotSupportedException());

参见 http://code.google.com/p/elmah/wiki/DotNetSlackersArticle#Signaling_errors获取更多信息。

如果您真的不喜欢将该代码添加到您的 Controller ,则您无法捕获异常服务器端并在您的 javascript 中处理 ajax 错误事件。

关于json - 在 MVC 3 中捕获正确 JSON 格式的错误时,如何使用 ELMAH 记录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7905807/

相关文章:

java - 使用 Jackson 在反射反序列化之上自定义反序列化

arrays - Powershell ConvertFrom-Json 意外地从包含字符串的单个项目数组生成字符串而不是对象数组

json - 如何在不重复代码的情况下填充 JSON 对象的一部分?

c# - 发布到 Controller 时填充 subview 模型集合

sql-server - Elmah 不在 IIS7 服务器上工作

python - 为什么我的自定义 JSONEncoder.default() 忽略 bool 值?

c# - 在读取带有子对象列表的对象时,需要一个无参数的默认构造函数来允许 dapper 实现错误

asp.net-mvc-3 - ASP.Net MVC 页面提交时如何捕获选中的单选按钮

asp.net-mvc - ELMAH-MVC 3-403-禁止访问:被拒绝

sql-server - ELMAH 错误和经典 Asp