Application_Error 并不总是触发 ASP.NET
Posted
技术标签:
【中文标题】Application_Error 并不总是触发 ASP.NET【英文标题】:Application_Error not always firing ASP.NET 【发布时间】:2014-02-15 17:44:04 【问题描述】:我在我的网站中使用路由。我想要做的是检测用户何时输入无效的 url 并在 Application_Error (在 Global.asax 中)中捕获错误,然后将用户重定向到主页。
为了测试,我只使用一条路线:
routes.MapPageRoute("myroute","Home/id/age", "~/Home.aspx",false);
所以如果我去http://testsite/Home/10/25
一切正常。
如果我去http://testsite/Home/10/25/3443/33/22
服务器返回“404 Not Found”错误。问题是 Application_Error 在这里甚至没有触发。
但是如果我去如果我去http://testsite/Home/10/25/3443/33/22.aspx
那么 Application_Error 正在触发
有人知道为什么吗?如何捕获所有错误并将用户重定向到主页?
附:我的 web.config 是:
<customErrors mode="Off" defaultRedirect="Home.aspx">
<error statusCode="404" redirect="Home.aspx" />
</customErrors>
【问题讨论】:
【参考方案1】:将 IIS 中的应用程序池设置为集成模式
【讨论】:
它处于集成模式以上是关于Application_Error 并不总是触发 ASP.NET的主要内容,如果未能解决你的问题,请参考以下文章
当 customerrors = "On" 时,Application_Error 未触发