gpt4 book ai didi

c# - 什么会导致 Application_Error 不被调用?

转载 作者:太空宇宙 更新时间:2023-11-03 17:06:16 24 4
gpt4 key购买 nike

在过去的 2 周里,我遇到了一个我无法解决的案例,也许你们已经解决了同样的问题或者听说过/阅读过它并且可以帮助我。

我有一个在我的机器和其他机器上运行的 ASP.NET 项目,每次我尝试调节 QueryString 时都会收到 System.Exception 抛出的错误

问题是,在这台特定的机器(女巫在荷兰)中,Application_Error 永远不会捕获异常,它将异常消息保存到日志中(在我的应用程序中应该这样做)但它不会“破坏”网络应用程序...它只是继续!

如何以及什么可以使这成为可能?


举个例子,这是我的网页(不能像这样调用HttpCache,但只是为了指出我正在使用Web.HttpCache 对象)

if( Request.QueryString["user"] != HttpCache["MYAPP-user"] ) {
myApp.DebugWrite("User was tempered.");
throw System.Exception("User was tempered.");
}

global.asax 我有

...

void Application_Error(object sender, EventArgs e)
{
// Code that runs when an unhandled error occurs
if (Server.GetLastError() != null)
{
Exception objErr = Server.GetLastError().GetBaseException();
String url = Request.Url.ToString();
String msg = objErr.Message;
String trc = objErr.StackTrace.ToString();


Response.Clear();

StringBuilder html = new StringBuilder();
// fill up html with html code in order to present a nice message
Response.Write(html.ToString());

Server.ClearError();
Response.Flush();
Response.End();
}
}

...

在我的测试机器中,我总是得到带有错误消息的 html 以及日志中的消息...在这台特定机器中,我只在日志中看到错误,但应用程序继续!!!

web.config 与在所有机器上完全相同,并且此 Web 应用程序在 .NET 2.0 上运行

它可以是什么?

最佳答案

注释掉代码中的 Response 和 Server.ClearError() 部分:

 //Response.Clear();

StringBuilder html = new StringBuilder();
// fill up html with html code in order to present a nice message
Response.Write(html.ToString());

//Server.ClearError();
//Response.Flush();
//Response.End();

关于c# - 什么会导致 Application_Error 不被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1498947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com