【发布时间】:2013-04-26 21:59:05
【问题描述】:
我有一个用于内部作业处理的 IIS 网站。这项工作大约需要 10 分钟。当用户单击按钮开始工作时,大约一分钟后,整个页面变成白色并显示“连接超时”。然而,这项工作与调用 3rd pty API 有关,它们仍在地下。
当作业仍在运行时,用户无法重新登录网站。作业完成后,用户可以再次使用该网站。
这里有什么秘密吗?
【问题讨论】:
标签: c# asp.net multithreading iis timeout
我有一个用于内部作业处理的 IIS 网站。这项工作大约需要 10 分钟。当用户单击按钮开始工作时,大约一分钟后,整个页面变成白色并显示“连接超时”。然而,这项工作与调用 3rd pty API 有关,它们仍在地下。
当作业仍在运行时,用户无法重新登录网站。作业完成后,用户可以再次使用该网站。
这里有什么秘密吗?
【问题讨论】:
标签: c# asp.net multithreading iis timeout
这里有几件事情在起作用。
通常网络浏览器是一两分钟(不确定确切数字) 见:connection timeout in IE 请参阅:在 Firefox 中,您应该能够检查 about:config
对于网络服务器和 asp.net,请参阅 HttpRuntimeSection.ExecutionTimeout Property
命令超时见Sqlcommand.CommandTimeout默认为30秒。
话虽如此...仅仅因为客户端停止等待并不会强制 sql server 停止运行命令。在连接上调用 close 应该会停止服务器上正在运行的命令,但是您可能需要等待它回滚它可能所做的任何更改。
我怀疑您没有使用 sql server 代理作业,但如果您断开连接,则不会停止作业。
如果只是一个客户端不等你发送输出,那么你可以做的就是向客户端发送一些输出......
喜欢
Response.Write("<!-- progress ... -->");
Response.Flush();
您必须刷新,以便它不会缓冲服务器端的响应
【讨论】: