2

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

我有一个 ASP.NET 项目,可以在我的机器和其他机器上正常运行,每次我尝试调整 QueryString 时都会收到 System.Exception 引发的错误

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

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


例如,这是我的网页(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 上运行

会是什么?

4

1 回答 1

-2

注释掉代码中的 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();
于 2009-09-30T16:05:47.623 回答