当前位置:  开发笔记 > 前端 > 正文

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

如何解决《IIS文件下载挂起/超时-sc-win32-status=64》经验,为你挑选了2个好方法。

基于以下内容,在尝试通过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并且每次都成功下载(也许一些重试逻辑发生在引擎盖下)

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

有什么想法吗?



1> wweicker..:

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

sc-win32-status 64表示"指定的网络名称不再可用".

IIS将最终响应发送到客户端后,它会等待来自客户端的ACK消息.

有时,客户端将重置连接,而不是将最终的ACK发送回服务器.这不是一个优雅的连接关闭,因此IIS记录"64"代码以指示中断.

当他们用它做,以释放,而不是把它留在TIME_WAIT/CLOSE_WAIT套接字许多客户将重置连接.

与个人客户相比,代理人可能更倾向于这样做.



2> infl3x..:

我花了两个星期来调查这个问题。对我来说,我遇到的情况是间歇性随机请求被过早终止。这导致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)。

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

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

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

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有