ASP.Net中的AJAX Web服务-如何进行全局错误处理?

Kov*_*ovu 5 .net ajax error-handling webmethod

我的* .aspx站点中有大约50多个AJAX WebMethod,它由JQuery调用(有时是原始的jquery,有时是在lib的基础上)。

这里有一些例子:

 [WebMethod]
    public static string GetLog()
    {
        DAL.LogService log = new DAL.LogService();
        string items = log.GetLog();
        return items;
    }

    [WebMethod]
    public static void ClearBenchmarks()
    {
        DAL.LogService log = new DAL.LogService();
        log.ClearBenchmarks();
    }

    [WebMethod]
    public static void WriteLog(string message1, string message2, string user, string type)
    {
        DAL.LogService.WriteLog(message1, message2, user, type);
    }
Run Code Online (Sandbox Code Playgroud)

实际上,在大多数时候,它们仅重定向到我的应用程序的dataLayer,但是实际上,ofc,我有50多个单一方法...

现在,我想在我的应用程序中包括错误处理-如何在不尝试捕获每种方法的情况下进行全局处理?

Sha*_*ajo 2

这是 .Net 中的一个已知问题 - global.asax 的 Application_Error 永远不会针对 Web 服务触发。

所以你可以尝试以下想法。

  1. 您可以在每个 Web 服务方法周围放置一个 try-catch

  2. 使用外观设计模式并将 try-catch 包含在父对象中

  3. 编写自定义 SOAP 扩展或 HTTPModule

希望这可以帮助