Global.asax中的Application_Error事件不执行

来源:互联网 发布:索菲亚kd软件视频教程 编辑:程序博客网 时间:2024/04/28 03:52

      最近在做一个asp.net mvc的项目,既然是一个实际项目怎么能够没有异常处理和相应的日志记录呢。因此决定在Global.asax中的Application_Error事件中记录事件日志和统一处理异常。但是结果发现Application_Error事件根本没有执行,很奇怪,按照asp.net中四种异常处理的优先级来讲,Application_Error事件应该是优先级最高的啊,怎么它没有执行呢?

      在网上搜了搜,结果发现提到此问题的还真不是很多,google、baidu、yahoo都试了但是确很少谈这个的。最后发现有一篇英文文章在探讨这个问题,粗略读了一下,发现有相应的解决方法的超链接:http://support.microsoft.com/Default.aspx?id=329291,这是微软的帮助和支持,里面有几种方法,照着做就可以了。另外我想补充的是,我在解决这个问题的时候并不是很顺利,我在照着上面的做过之后故意在一个Action中执行throw new Exception();之后没有执行Application_Error事件,我当时想是没有解决此问题。后来继续在网上找,发现有人说先删除Global.asax文件然后编译接着再添加Global文件。我这样做了之后当我继续执行那个Action的时候问题依然没有解决,于是决定先放一放。但是偶然的一次异常(不是我故意抛出的异常)竟然执行了Application_Error事件,很奇怪。不知道是我删除再添加的缘故还是按照上面微软提供的帮助解决的缘故,我想应该是按照帮助里解决的概率居多,但是如果不行的话可以试试删除再添加的方法。

      注意:现在当我在Action中故意抛出异常时,也没有引发Application_Error事件的执行,希望有知道的朋友指点一下到底为什么。

原创粉丝点击