我有一个使用自定义错误的 ASP.NET 应用程序。发生了一个错误,我似乎无法获得任何信息。当错误发生时,它会触发自定义错误页面,但由于某种原因它不会触发 Page_Error 或 Application_Error。如果我完全关闭 CustomErrors,我绝对不会得到任何反馈。到目前为止,我得到的唯一反馈是重定向到自定义错误页面。
场景:ASP.NET WebForms 应用程序。其中一个页面有一个带有提交按钮的 UpdatePanel。该页面工作正常。但是如果我走开一会儿(似乎是 30-60 分钟)然后回来点击提交按钮,什么也没有发生;没有错误,页面没有响应 - 什么都没有。在调试器中运行时,我无法做到这一点;仅当它托管在 IIS (7.5) 中时才会发生。[我看过其他关于这个问题的 SO 帖子,但没有一个建议对我有用。]
当错误发生时,使用 CustomErrors=On 或 RemoteOnly,重定向到自定义错误页面有效,而使用 RemoteOnly,从服务器,我根本没有收到任何反馈,类似于使用 customerrors=off 的远程连接。我真的很希望 YSOD 错误页面。
我尝试通过将错误记录到数据库来捕获 Page_Error 中的错误,但这也不起作用。我知道 Page_Error 并且 DB 部分正在工作,因为如果我将后面的提交代码更改为除以零,则错误会记录在 DB 中。此外,除以零错误将显示给客户端,customerrors=off,并显示自定义错误页面。但是删除除以零错误,然后等待 30 分钟左右再试一次,Page_Error 代码没有被命中,即使它确实重定向到自定义错误页面。然后我尝试将 Page_Error 中的代码移动到 Application_Error,但发生了完全相同的事情。强制除以错误有效,但这个看似与超时相关的错误无效。
那么,是否有某些错误仍然可以触发重定向到自定义错误页面,但不会触发 Application_Error 事件?