日期:2014-05-19  浏览次数:20440 次

Global.asax和HttpModule中的错误处理
在Global.asax和HttpModule中处理错误有什么区别,我在
Global.asax中处理错误没的问题,但是一样的代码在HttpModule中就经常出现Server.GetLastError()为空的现象  

if   (Context   !=   null   &&   Context.IsCustomErrorEnabled)
              Server.Transfer( "~/error.aspx ",   false);

转到   error.aspx   中处理

使用   Global.asax   就没有任何问题
在HttpModule中处理,error.aspx   文件中的Server.GetLastError().GetBaseException();的就经常出现为空的问题

------解决方案--------------------
不懂 顶
------解决方案--------------------
帮你顶
学习学习
------解决方案--------------------
Global.asax文件在编译时会继承HttpApplication,实际上就把Global.asax里的写的事件处理挂接到HttpApplication里,HttpModule一般也挂接在HttpApplication上事件上,只过一般只是处理某一个事件,显得功能更加单一,而且一般是处理页面之前的事件,如UrlReWrite
------解决方案--------------------
使用上没有区别,只是耦合度不同。Global.asax就直接耦合在HttpApplication中,而HttpModule的耦合度低。
------解决方案--------------------
学习~