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