下面给出了示例网址
localhost/MyPage.aspx/1582%20
asp.net抛出错误,说该页面不存在,据我所知,这是因为URL末尾的%20
。
错误被Application_Error
中的Global.asax
捕获,但是我希望将其重定向到某个页面,我还希望我的Application_Error
能够记录错误,没有页面重定向
我可以使用Global.asax
中的其他事件来处理此重定向吗?我尝试PreSendRequestHeaders
,但仍然转到Application_Error
感谢。
答案 0 :(得分:1)
不,你不能,因为only one event for such situation而且是Application_Error
(Global.asax
中的事件处理程序是HttpApplication
)。
但你可以implement an IHttpModule
,解析其中的网址,如果正确,请将用户重定向到目标网页(另请参阅here)。
您应该记住,默认情况下,并非所有请求都发送到此类模块,因此您可能通过各种方式在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>