在ASP.NET中处理静态aspx [WebMethods]的全局异常

4
一个被[WebMethod]注释的静态方法在aspx页面上的默认行为是将错误返回给调用者。我们使用json访问这些方法,找到的捕获异常的唯一方法是在站点上每个webmethod中使用try/catch或使用带有错误的javascript回调(这样做的不可接受的缺点是将错误暴露给客户端)。是否有任何方法可以使用ASP.NET中的HealthMonitoring设置全局处理这些异常?
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接