代码之家  ›  专栏  ›  技术社区  ›  Sumrak

浏览器无限期等待服务器

  •  1
  • Sumrak  · 技术社区  · 15 年前

    我对一个长时间运行的页面有意见。生成ASP.NET页面并提供给浏览器大约需要20分钟。

    服务器成功地完成了响应(根据日志和asp.net web跟踪),我假设将其发送到浏览器。但是,浏览器从不接收页面。它(ie8&firefox 3两者)一直在旋转(我让它运行了几个小时,什么也没发生)。

    此问题仅出现在共享主机服务器上。当我在开发机器或内部服务器上运行同一个应用程序时,一切正常。

    我试过小提琴和数据包嗅探,看起来服务器什么也不回。它甚至不发送保持活动的数据包。然而,我尝试过的两种浏览器都没有在预定义的超时时间(我相信IE中是1小时,不确定Firefox中是什么)后超时。

    最后一个数据包服务器从浏览器发回的是ack to the post。

    我在不同的客户机上尝试过这个,以确保我的机器上的配置没有损坏。

    我怎样才能进一步诊断这个问题呢?为什么浏览器不超时,即使没有keep-alive包?

    P.S.服务器是Windows2003,所以是iis6。它以前在共享主机上工作得很好,但是他们改变了一些东西(当他们移动到新的位置时),然后就坏了。想弄清楚什么。

    P.P.S.我知道我可以改变页面设计,以避免页面花这么长时间才得到服务。我会这样做的,但我也想找出这个问题的原因。我希望继续关注这个问题,并避免可能的页面替代设计(使用ajax或其他)。

    2 回复  |  直到 15 年前
        1
  •  2
  •   cdonner    15 年前

    检查服务器的连接超时(在网站属性页上)。

    一个更好的方法是发送请求,在服务器上启动计算,并为一个带有javascript计时器的页面提供服务,该计时器不断向自身发送请求。回发时,此页检查服务器进程是否已完成。当进程仍在运行时,它用另一个计时器响应。完成后,它将重定向到结果。

        2
  •  0
  •   Sergii    9 年前

    你能说明一下你是怎么解决这个问题的吗?我好像也有一个。我得到了.docx报告,两个浏览器(ie10和fx37)无限期地等待响应(继续旋转)。 但它在vs2012的iis express和我的本地主机iis7上工作得很好。 尽管服务器有iis6.1

    当它在本地主机上工作时,只需几分钟就可以得到一份报告。