当customerrors="On"时,Application_Error未触发是因为在Web.config文件中设置了customerrors属性为"On",这意味着当发生错误时,将显示自定义的错误页面而不是详细的错误信息。在这种情况下,Application_Error事件将不会被触发。
Application_Error是一个在全局.asax文件中定义的事件,它在应用程序中发生未处理的异常时被触发。通常情况下,当customerrors属性设置为"Off"时,发生异常时会触发Application_Error事件,并且可以在事件处理程序中执行自定义的错误处理逻辑,例如记录错误日志、发送错误通知等。
然而,当customerrors属性设置为"On"时,ASP.NET会自动将错误重定向到指定的错误页面,而不会触发Application_Error事件。这样做的目的是为了提供更友好的用户体验,并防止详细的错误信息泄露给潜在的攻击者。
在这种情况下,如果需要执行特定的错误处理逻辑,可以考虑以下几种方法:
总结起来,当customerrors属性设置为"On"时,Application_Error事件不会被触发。可以通过在自定义错误页面中添加逻辑、使用Global.asax中的其他事件或启用ASP.NET的错误日志记录功能来执行特定的错误处理逻辑。
领取专属 10元无门槛券
手把手带您无忧上云