IIS文件下载挂起/超时 - sc-win32-status = 64

Sea*_*ton 23 iis http download

基于以下内容,在尝试通过HTTP下载文件时,为什么我可能会出现大量"挂起"的想法?

  • 服务器是IIS 6
  • 正在下载的文件是二进制文件,而不是网页
  • 几个客户端挂起,包括TrueUpdate和FlexNet Web更新包,以及使用响应流执行基本HttpWebRequest/HttpWebResponse逻辑和下载的自定义.NET应用程序
  • 成功为200 0 0时的IIS日志文件签名(sc-status sc-substatus sc-win32-status)
  • 对于失败,错误签名为200 0 64
  • sc-win32-status of 64是"指定的网络名称不再可用"
  • 我可以在URL上指向firefox并且每次都成功下载(也许一些重试逻辑发生在引擎盖下)

在这一点上,似乎我的服务器有一些时髦的东西,它正在抛出这些错误,或者这只是正常的网络行为,我需要使用(或写入)对故障更具弹性的客户端.

有什么想法吗?

wwe*_*ker 22

也许您的问题是与您在回复评论中推测的ISP的低级别网络问题.我遇到了IIS一个类似的问题,出现在日志文件中,这是我发现这个职位某种神秘的200条0 64线.为了记录,这是我对sc-win32-status = 64的理解; 如果我错了,我希望有人可以纠正我.

  • sc-win32-status 64表示"指定的网络名称不再可用".
  • IIS将最终响应发送到客户端后,它会等待来自客户端的ACK消息.
  • 有时,客户端将重置连接,而不是将最终的ACK发送回服务器.这不是一个优雅的连接关闭,因此IIS记录"64"代码以指示中断.
  • 当他们用它做,以释放,而不是把它留在TIME_WAIT/CLOSE_WAIT套接字许多客户将重置连接.
  • 与个人客户相比,代理人可能更倾向于这样做.


inf*_*l3x 6

我花了两个星期来调查这个问题。对我来说,我遇到的情况是间歇性随机请求被过早终止。这导致IIS日志的状态代码为200,但win32状态为64。

我们的基础架构在HA模式下的两个NetScaler负载平衡器之后包括两个Windows IIS服务器。

在我的特定情况下,问题在于NetScaler启用了一项名为“集成缓存”的功能(http://support.citrix.com/proddocs/topic/ns-optimization-10-5-map/ns-IC- gen-wrapper-10-con.html)。

禁用此功能后,请求中断就停止了。网站运行正常。我不确定这是什么原因或原因,但是确实存在。

如果您使用代理服务器或负载平衡器,请对它们已启用的功能进行一些调查。对我来说,原因是客户端和服务器之间的某些请求中断。

我希望这种解释至少可以节省别人的时间。