Global.asax中的事件



下面的示例url是

localhost/MyPage.aspx/1582%20

asp.net抛出一个错误,说这个页面不存在,据我所知,这是因为URL末尾的%20

错误被Global.asax中的Application_Error捕获,但是我希望它被重定向到一个页面,我也希望我的Application_Error记录错误,没有页面重定向

Global.asax中是否有其他事件可以用于处理此重定向?我尝试了PreSendRequestHeaders,但它仍然转到Application_Error

谢谢。

不可以,因为这种情况只有一个事件,它是Application_ErrorGlobal.asax中的事件处理程序用于HttpApplication)。

但是,您可以实现IHttpModule,解析其中的url,如果它是正确的,则将用户重定向到目标页面(另请参阅此处)
您应该记住,默认情况下,并不是所有的请求都发送到这样的模块,因此您可能需要通过各种方式在web.config中注册模块:

经典模式

<configuration>
  <system.web>
<httpModules><add name="HelloWorldModule" type="HelloWorldModule"/></httpModules>
  </system.web>
</configuration>

集成模式

<configuration>
<system.webServer><modules><add name="HelloWorldModule" type="HelloWorldModule"/></modules></system.webServer>
</configuration>

HTTP处理程序和HTTP模块概述

最新更新