4

aspx页上的[WebMethod]属性静态方法的默认行为是将错误返回给调用者。我们正在使用json访问这些方法,并且我们发现捕获异常的唯一方法是在网站上的每个web方法中尝试/捕获,或者使用带有错误的javascript回调函数(它具有将错误暴露给客户)。全局处理ASP.NET中的静态aspx [WebMethods]中的异常

有没有什么办法可以在ASP.NET中使用HealthMonitoring设置全局处理这些异常?

回答

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; 
     } 
    }