下面的示例url是
localhost/MyPage.aspx/1582%20
asp.net抛出一个错误,说这个页面不存在,据我所知,这是因为URL末尾的%20
。
错误被Global.asax
中的Application_Error
捕获,但是我希望它被重定向到一个页面,我也希望我的Application_Error
记录错误,没有页面重定向
Global.asax
中是否有其他事件可以用于处理此重定向?我尝试了PreSendRequestHeaders
,但它仍然转到Application_Error
谢谢。
不可以,因为这种情况只有一个事件,它是Application_Error
(Global.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模块概述