我们有一个 HttpModule 旨在捕获异常并将它们记录到数据库中。它看起来像这样:
public class ExceptionLoggingModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.Error += OnError;
}
private static void OnError(object sender, EventArgs e)
{
try
{
var context = (HttpApplication) sender;
var exception = context.Server.GetLastError();
if (exception != null)
{
// Log exception
}
}
catch(Exception)
{
}
}
}
这通常有效,但我刚刚注意到,当页面方法中发生错误时,OnError 方法永远不会触发(即,代码隐藏文件中的方法标记为 WebMethod 属性)。
怎么来的?
除了在页面方法本身中重新实现异常日志记录之外,我能做些什么吗?