【发布时间】:2012-02-15 19:41:42
【问题描述】:
我很难在 Global.asax 文件中执行 On_Error 事件。当应用程序出错时,它应该转到 Global.asax 文件,在数据库中记录错误并重定向到自定义错误页面。上面的代码在我的本地工作正常,但是一旦我在 DEV 机器上部署了相同的代码,Global.asax 就不会被执行。
它总是重定向到我在 web.config 中提到的客户错误页面
<customErrors mode="On" defaultRedirect="/Error_Redirect.asp">
<error statusCode="404" redirect="/404.asp"/>
</customErrors>
IIS 中的项目结构类似于 Test1 \ Test 2 。我正在尝试的错误处理代码在测试 2 中,它是 IIS 中的虚拟目录。如果我在 web.config 文件中有任何错误,例如“已提到的部分”,那么错误正在命中 Global.asax 文件。如果出现如下运行时错误,则不会出现在 Global.asax 文件中。
Int32 i, j, k;
i = 10;
j = 0;
k = i / j;
Response.Write(k);
。 我什至厌倦了将模式设置为 Off / RemoteOnly。 有什么建议吗??
谢谢,
【问题讨论】:
-
@Tim 我尝试了这些选项。但看起来 Global.asax 的发射是不一致的。有时它会命中 Global.asax 文件,但不是恒定的。想知道它是否与 IIS 设置有关。
-
你不是说 Application_Error 事件吗?只有在 customErrors mode="Off" 时才会触发事件。
-
埃里克...我也试过了。 customErrors mode="Off" ,但错误仍然没有击中 Global.asax。
-
您是否在设置 Test 2 项目 global.asax 和 web config?
标签: .net global-asax