超时过期错误 -- 不是 SQL 服务器超时



我已经建立了一个方案,将客户网站上的任何异常(ASP.NET 2.0应用程序)通过电子邮件发送给我。几乎每天晚上(通常发生在晚上)我都会收到如下错误:

Error: Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.
Stack Trace:
   at carart.products.Page_Error(Object sender, EventArgs e)
   at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
   at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
   at System.Web.UI.TemplateControl.OnError(EventArgs e)
   at System.Web.UI.Page.HandleError(Exception e)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at ASP.products_aspx.ProcessRequest(HttpContext context)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

最后一个位置是Page_Error,因为我有一个 Page_Error 处理程序,它重定向到 Error.aspx 页面并向用户显示一条消息。在进行重定向之前,它会发送详细说明错误的电子邮件。

我真的无法判断这在我的代码中的哪个点失败了,但我假设它甚至没有Page_Load,因为它没有显示在堆栈跟踪中。

我每天晚上至少收到 3 或 4 个 - 但有时在白天也是如此,有时它会干扰客户结账和其他对我客户的业务至关重要的事情。

我该如何调试?我必须设置什么属性才能告诉它等待更长的时间才能连接到服务器?

,你可能想进一步调查为什么会发生超时,但为了增加超时(你最好将其设置为特定于页面),你可以在你的web.config中这样做:

<location path="somefile.aspx">
    <system.web>
            <httpRuntime executionTimeout="180"/>
    </system.web>
</location>

相关内容

  • 没有找到相关文章

最新更新