如何增加IIS7中运行的Web服务的超时?

时间:2011-01-10 05:26:15

标签: c# web-services asmx

我有一个webservice(.asmx)方法,需要几分钟才能完成。在客户端,我将超时设置为infinte:

   services.Timeout = -1;

如何在服务器上执行相同的操作?

我尝试将以下内容添加到我的web.config

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

MSDN文档说这会增加超时秒数。超时发生的时间超过20分钟。

有人可以帮忙吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

默认情况下,应用程序池每20分钟回收一次。

老实说,如果您的请求需要很长时间,那么您应该调查其他方法。如果您正在构建永久性的文件或报告,请考虑在Windows服务的后台构建它,并在用户准备好时通过电子邮件发送给用户。

一个更好的问题可能是:究竟是什么花了很长时间,你怎么能优化它?

如果您提供更多信息,我会更新我的答案。

答案 1 :(得分:0)

你也应该改变:

<system.web>
    <sessionState timeout="..." />
</system.web>

并且还配置应用程序池超时,如David Lively所述。这可以在IIS管理器中完成。