aspx页面上[WebMethod]归因静态方法的默认行为是将错误返回给调用者。我们使用json访问这些方法,我们发现捕获异常的唯一方法是在网站上的每个web方法中使用try / catch,或者使用带有错误的javascript回调(这具有将错误暴露给错误的不可接受的缺点)客户端)。
有没有办法使用ASP.NET中的HealthMonitoring设置全局处理这些异常?
答案 0 :(得分:0)
我不了解健康监控,但我通常有一个通用的包装器来执行内部的端点代码。这记录了真正的异常,但总是在边界上抛出一个通用异常。
public static T wrapAjaxRequestsToCatchException<T>(Func<T> wrappedDelegate) where T : JsonBase, new()
{
try
{
return wrappedDelegate();
}
catch (Exception ex)
{
var errResponse = new T()
{
Success = false,
Message = getErrorMessage(ex)
};
// Log the exception
ErrorLog.LogAjaxEvent(string.Format("AJAX EXCEPTION : {0}", ex.ToString()), System.Diagnostics.EventLogEntryType.Error);
return errResponse;
}
}