我有一个webservice(.asmx)方法,需要几分钟才能完成。在客户端,我将超时设置为infinte:
services.Timeout = -1;
如何在服务器上执行相同的操作?
我尝试将以下内容添加到我的web.config
<system.web>
<httpRuntime executionTimeout="1200"/>
MSDN文档说这会增加超时秒数。超时发生的时间超过20分钟。
有人可以帮忙吗?
谢谢!
答案 0 :(得分:3)
默认情况下,应用程序池每20分钟回收一次。
老实说,如果您的请求需要很长时间,那么您应该调查其他方法。如果您正在构建永久性的文件或报告,请考虑在Windows服务的后台构建它,并在用户准备好时通过电子邮件发送给用户。
一个更好的问题可能是:究竟是什么花了很长时间,你怎么能优化它?
如果您提供更多信息,我会更新我的答案。
答案 1 :(得分:0)
你也应该改变:
<system.web>
<sessionState timeout="..." />
</system.web>
并且还配置应用程序池超时,如David Lively所述。这可以在IIS管理器中完成。