1

我有这个例外:

Server Error in '/datalab' Application.

Request timed out.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Web.HttpException: Request timed out.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[HttpException (0x80004005): Request timed out.]

但是我在 /datalab 和 /datalab/powerstats 目录中添加了一个 Global.asax 文件(datalab 目录是根目录,而超时的页面是 datalab/powerstats/output.aspx):

<%@ Application Language="C#" %>

<script runat="server">



void Application_Error(object sender, EventArgs e) 
{ 
    Exception exc = Server.GetLastError();

  // Handle HTTP errors
  if (exc.GetType() == typeof(HttpException))
  {
  Response.Write("<h2>Global Page Error</h2>\n");

        // The Complete Error Handling Example generates
        // some errors using URLs with "NoCatch" in them;
        // ignore these here to simulate what would happen
        // if a global.asax handler were not implemented.
        if (exc.Message.Contains("NoCatch") || exc.Message.Contains("maxUrlLength"))
            return;

        //Redirect HTTP errors to HttpError page
        //Server.Transfer("HttpErrorPage.aspx");
        return;
    }


}



</script>

我如何捕捉到这个异常?为什么不被caought?

4

2 回答 2

1

Application_Error当发生未处理的异常时调用该事件。

您无法返回并更改响应,因为内部服务器错误 500 响应已发送到客户端。

您的问题的答案是修复超时的原因,或者以编程方式增加超时期限。要在 web.config 中执行此操作,请尝试添加:

<httpRuntime executionTimeout="<numOfSeconds>" />

请参阅http://msdn.microsoft.com/en-us/library/e1f13641(v=vs.71).aspx

于 2012-08-30T20:51:36.957 回答
0

您以前使用过堆栈跟踪吗?

Look up MSDN documentation on how to use them. They have different type of stack trace depending on your application.

于 2012-08-30T20:52:28.923 回答