如何检查是否正在调用Global.asax文件

Van*_*ani 5 .net global-asax

我很难在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>
Run Code Online (Sandbox Code Playgroud)

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);
Run Code Online (Sandbox Code Playgroud)

.我甚至厌倦了将模式设置为Off/RemoteOnly.有什么建议??

谢谢,

Dhw*_*hah 0

您的应用程序是否有可能被加载到多个 ASP.NET 进程或域中?当您使用“Test1/Test2”时,您是否认为有时您调用的 URL 会通过“Test1/Test2”,有时会通过“Test2”?

最近,我在 ASP.NET 中开发 POC,并错误地将 Global.asax 移至子文件夹而不是应用程序的根目录中。我期望应用程序的启动事件中的一些代码能够触发 - 但它从未被触发。将其移回应用程序的根目录后,它开始按预期工作。

因此,当您通过“Test2”调用时,Global.asax 的异常处理程序会触发,而当您通过“Test1/Test2”调用时,Global.asax 不会触发。