连接超时但作业仍在运行

时间:2013-05-02 16:18:44

标签: c# asp.net multithreading iis timeout

我有一个IIS网站用于内部作业处理。这项工作大约需要10分钟。当用户单击按钮以启动作业时,大约一分钟后整个页面变白并显示“连接超时”。然而,这项工作与调用第三个pty API有关,它们仍然在地下。

当作业仍在运行时,用户无法重新登录网站。作业完成后,用户可以再次使用该网站。

这里有什么秘密吗?

1 个答案:

答案 0 :(得分:0)

你可以在这里玩几件事。

  1. 时间网络浏览器将等待回复
  2. 网络服务器处理请求的时间
  3. 在客户端超时之前执行sql命令的时间。
  4. SQL服务器在终止命令之前运行命令的时间。
  5. 通常,网络浏览器一分钟或两分钟(不确定确切的数字) 见:connection timeout in IE 看:在firefox中你应该能够查看:config

    对于网络服务器和asp.net,请参阅HttpRuntimeSection.ExecutionTimeout Property

    命令超时请参阅Sqlcommand.CommandTimeout,默认值为30秒。

    这就是说...只是因为客户端停止等待并不会强制sql server停止运行该命令。在连接上调用close应该停止服务器上的运行命令,但是你可能需要等待它回滚它可能做出的任何更改。

    我怀疑您没有使用sql server agent作业,但如果您正在断开连接,则不会停止该作业。

    如果它只是一个不等待你发送输出的客户端,那么你可以做的就是将一些输出发送给客户端......

    喜欢

      Response.Write("<!-- progress ... -->");
      Response.Flush();
    

    您必须刷新,以便它不会缓冲服务器端的响应