asp.net – 异常日志记录HttpModule不会从ASP .NET Page Method
发布时间:2020-12-16 03:22:13 所属栏目:asp.Net 来源:网络整理
导读:我们有一个HttpModule,用于捕获异常并将它们记录到db.它看起来像这样: public class ExceptionLoggingModule : IHttpModule{ public void Init(HttpApplication context) { context.Error += OnError; } private static void OnError(object sender,EventAr
我们有一个HttpModule,用于捕获异常并将它们记录到db.它看起来像这样:
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) { } } } 这通常是有效的,但我注意到,当Page Methods中出现错误时,OnError方法永远不会触发(即标记有WebMethod属性的代码隐藏文件中的方法). 怎么会? 除了重新实现Page方法本身内部的异常日志记录之外,我能做些什么吗? 解决方法
我找到了一个适合我的解决方案:
http://blogs.microsoft.co.il/blogs/oshvartz/archive/2008/05/17/asp-net-error-handling-using-httpmodule-full-and-partial-post-back-ajax-updatepanel.aspx 这是我写的处理程序的关键点: public class PathfinderModule : IHttpModule { public void Init(HttpApplication context) { context.PostMapRequestHandler += this.OnPostMapRequestHandler; context.Error += OnError; } private void OnPostMapRequestHandler(object sender,EventArgs e) { Page aux = HttpContext.Current.Handler as Page; if (aux != null) { aux.Error += this.OnPageError; } } private static void OnError(object sender,EventArgs e) { // Blah.. } private void OnPageError(object sender,EventArgs e) { // Blah... } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- unit-testing – 对ActionFilter进行单元测试 – 正确设置A
- 如何在asp.net vnext中使用协议缓冲区?
- 四种为HttpClient添加默认请求报头的解决方案
- asp.net-mvc – 在ASP.NET MVC 5 ActionLink中包含锚标记
- asp.net – 从静态类访问Page的当前实例
- 在HiddenField asp.net中存储一个字符串数组
- asp.net-mvc – ASP.NET MVC从数据库加载Razor视图
- asp.net-mvc – 获取索引值razor foreach
- asp.net – Context中不存在DeleteObject
- asp.net-mvc – MVC4中的ELMAH和API控制器不记录错误
推荐文章
站长推荐
- asp.net-mvc – 发布webgrid asp.net mvc3的项目
- asp.net-web-api – ASP身份OAuth令牌 – 我应该
- asp.net MVC的Html.RadioButton生成id和名称相同
- asp.net-mvc – 测量时间调用ASP.NET MVC控制器操
- asp.net – 如何从url中删除returnurl?
- asp.net-mvc-3 – 使用参数清理URL以获取MVC索引
- 高性能ASP.NET站点(> 1000请求/秒)
- asp.net – NLog – 如何记录所有请求信息
- 如何使用APDU将PIN验证代码发送到智能卡 – 使用
- asp.net-mvc – 在MVC 3中跨请求保持查询字符串
热点阅读