首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >WCF服务:状态200,sc-win32-状态为64

WCF服务:状态200,sc-win32-状态为64
EN

Stack Overflow用户
提问于 2012-09-05 17:22:27
回答 3查看 6.7K关注 0票数 19

我们在承载IIS 6.0上的WCF服务的其中一台服务器上观察到以下行为:

  1. IIS日志显示耗时(> 100000)的高值
  2. HTTP状态代码is
  3. 显示64

的值

我发现sc-win32-status code of 64表示“指定的网络不再可用”

最初,我怀疑这可能是因为对MinFileBytesPerSecond设置了限制,该限制设置了HTTP.sys在将数据从客户端发送到服务器以及从服务器发送回客户端时强制实施的最小吞吐速率。但是sc字节和cs字节的值指示所发送的数据量在通常为该服务观察到的范围内。

还注意到,WCF服务托管在四个机器上,并且是负载平衡的,但问题只出现在其中一个服务器上。(但本质上不在同一台服务器上)。这个问题也是间歇性的。

还有其他人遇到过这个错误吗?有没有关于哪里出了问题的线索?

更新

注意:对IIS 7.5的观察(IIS版本并不重要)

我能够复制这个问题。如果出现以下情况,则会出现问题:

  1. 客户端代理在收到来自服务器的响应之前超时。在本例中,它指向客户端上的TimeoutException。
  2. 服务器一直在等待客户端的TCP,但它永远不会收到。

因此,超时时间较长(TCP套接字超时(默认值:4分钟),sc-win32-status为64

从本质上讲,代码似乎需要很长时间才能响应,客户端超时,我在IIS中观察到的只是一个症状,而不是问题。

EN

回答 3

Stack Overflow用户

发布于 2015-03-31 23:15:50

如果您超过WCF服务的最大会话、调用或实例数(取决于您如何配置服务实例上下文模式),也会发生您所描述的行为。如果您观察%max并发会话和/或%max并发调用的System.ServiceModel性能计数器(同样取决于您的服务的实例上下文),您可能会看到与IIS日志项的关联。

请注意,可以在服务节流行为中配置这些maxes。

https://msdn.microsoft.com/en-us/library/vstudio/system.servicemodel.description.servicethrottlingbehavior(v=vs.100).aspx

票数 1
EN

Stack Overflow用户

发布于 2013-06-15 18:41:11

IIS将服务置于休眠状态以节省资源。

从此处复制(WCF REST Service goes to sleep after inactivity)

IIS托管你的服务的应用程序池定义了空闲超时属性(

管理控制台中应用程序池的高级设置),默认为20分钟。如果应用程序池在空闲超时内未收到请求,则终止为该池提供服务的工作进程。收到新请求后,IIS必须重新启动进程,该进程必须加载应用程序域和所有相关程序集,编译.svc文件,运行服务主机和进程。request.The解决方案可以增加空闲超时,但此超时的含义是正确处理服务器资源。如果不需要该进程,则应停止该进程。另一个丑陋的解决办法是使用一些ping进程(例如,服务器上的cron作业或计划任务),它将定期ping调用同一应用程序中的服务或页面上的某些方法。

票数 0
EN

Stack Overflow用户

发布于 2013-09-13 03:37:31

我再次看到你的问题,并想指出我找到了一个解决方案。结果是web.config中的这段代码:

代码语言:javascript
复制
     <pages smartNavigation="true">

关闭此功能后,我不再收到相同的超时错误。另请参阅the answer here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12278232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档