我正在使用在我的ASP.net应用程序中捕获global.asax中的错误的常见做法。在global.asax中,我有一个函数Application_Error
,它将错误记录到数据库中。
这非常适合记录用户请求页面时发生的错误。
但是,当从客户端调用的异步方法(使用[WebMethod]
属性修饰的方法)抛出异常时,这没有任何帮助。异常只是冒泡并且可能会返回到客户端代码,但我希望自动在服务器上运行错误处理代码,类似于在global.asax中记录页面错误的方式。
我如何做到这一点?一种方法是使用try-catch包装每个异步方法,但这对我来说似乎不是一个好的解决方案。
答案 0 :(得分:0)
一个选项是创建一个ASP.NET output filter,它拦截并记录ASP.NET发送给客户端的WebMethod异常。这是基本的想法:
"jsonerror: true"
标头。如果是,则响应包含WebMethod异常;记录异常。有关完整源代码,请参阅this StackOverflow answer。
答案 1 :(得分:-2)