【问题标题】:ExecutionTimeout not working执行超时不起作用
【发布时间】:2013-11-08 14:15:38
【问题描述】:

我有一个在 Visual Studio 2008 中使用 3.5 框架开发的 ASP.net 应用程序。在执行特别长的任务时,我的网站在 90 秒后一直超时。我想将其增加到 360 秒。根据 Microsoft 文档,我在 web.config 中设置 executionTimeout 如下:

<system.web>
<httpRuntime executionTimeout="360" />

...

</system.web>

我什至按照指示在编译下设置了 debug="false"。

但它不起作用 - 应用程序在 90 秒后仍然超时。它在设计时运行时不起作用,在将其部署到 IIS 后也不起作用。

请帮忙。

谢谢。

【问题讨论】:

  • 如果是一个长时间运行的db任务,你可能会遇到SQL超时。如果是这样,您可能还需要增加涉及的 SQL 命令的 CommandTimeout 属性

标签: c# asp.net


【解决方案1】:

来自MSDN

如果超时到期,则会引发异常。您可以在 Event Log 的 Application 文件夹中记录相关信息。您可以通过在配置元素中启用应用程序运行状况监控来做到这一点。

这应该让您有一个好的开始,看看您是否遇到超时异常问题,或者您是否有其他问题(我们显然无法解决,因为我们没有您的代码:)

【讨论】:

  • 我喜欢这个答案,因为它挑战我学习如何实施健康监测,这是一项很好的技能
【解决方案2】:

我找到了解决我自己问题的方法。我正在使用 Ajax,事实证明,在使用 Ajax 时,仅在 webconfig 中设置 executionTimeout 是不够的。 scriptmanager 中的 AsyncPostBackTimeout 也必须设置,以匹配 executiontimeout 的值。在我的情况下,这将是 360。

<asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="360">

</asp:ScriptManager>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-25
    • 2017-08-07
    • 2018-12-27
    • 2012-05-15
    • 2011-02-21
    • 1970-01-01
    • 2011-09-09
    相关资源
    最近更新 更多