在我的应用程序中,执行一个查询需要 3 分钟。我发现Default ExecutionTimeout 值为 110 sec。我试图将其更改为 500(秒),但它没有解决我的问题。在某处我发现该设置<compilation debug="false">
允许配置ExecutionTimeout属性。但是,即使这样也没有解决我的问题。
有谁知道如何增加长时间运行查询的执行超时?
.NET
Framework 1.0 和 1.1的执行超时为 90 秒,否则为 110 秒。
如果您需要更改默认设置,您需要在您的web.config
下进行<httpRuntime>
<httpRuntime executionTimeout = "number(in seconds)"/>
但要记住:
此超时仅在编译元素中的调试属性为 False 时适用。
详细了解编译元素
看看这个关于httpRuntime Element的文档
您可以executionTimeout
在web.config中设置以支持更长的执行时间。
executionTimeout
指定请求在被 ASP.NET 自动关闭之前允许执行的最大秒数。MSDN
<httpRuntime executionTimeout = "300" />
这使执行超时为五分钟。
可选的 Int32 属性。
指定请求在被 ASP.NET 自动关闭之前允许执行的最大秒数。
此超时仅在编译元素中的调试属性为 False 时适用。因此,如果调试属性为 True,则不必将此属性设置为较大的值以避免在调试时关闭应用程序。默认值为 110 秒,参考。
回覆。“我们可以为单个页面设置这个值吗?” – MonsterMMORPG。
是的,您可以(通常应该)使用位置标签附上之前的答案。
例如
...
<location path="YourWebpage.aspx">
<system.web>
<httpRuntime executionTimeout="300" maxRequestLength="29296" />
</system.web>
</location>
</configuration>
上面的片段取自我昨天测试过的我自己的工作 web.config 的末尾 - 它对我有用。
要在每页级别设置超时,您可以使用以下简单代码:
Page.Server.ScriptTimeout = 60;
注意:60 表示 60 秒,此超时仅适用于编译元素中的调试属性为 False 的情况。
当查询需要这么长时间时,我建议异步运行它并在完成时使用回调函数。
我对 ASP.NET 没有太多经验,但也许您可以将 AJAX 用于这种异步行为。
通常,网页应该在几秒钟内加载,而不是几分钟。不要让您的用户等待这么久!
就我而言,我需要让我的 wcf 运行超过 2 小时。设置,根本没有工作。wcf 的执行时间可能不超过 20~30 分钟。所以我在 IIS 管理器中更改了应用程序池的空闲超时设置,然后它就起作用了!在 IIS 管理器中,选择您的应用程序池并右键单击它并选择高级设置,然后将空闲超时设置更改为您想要的任何分钟。所以,我认为设置 web.config 和设置应用程序池都是需要的。