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

> IIS日志显示一个很高的时间值(> 100000)
> HTTP状态码为200
> sc-win32-status代码显示值为64

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

最初我怀疑这可能是因为MinFileBytesPerSecond设置的限制,它设置了HTTP.sys在从客户端发送数据到服务器并从服务器返回到客户端时执行的最小吞吐率。
但是,sc-bytes和cs-bytes的值表示发送的数据量在服务一般观察到的范围内。

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

有没有人遇到这个错误?关于什么可能是错的线索?

更新

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

我能够复制这个问题。如果出现以下问题:
WCF服务需要很长时间才能回应
2.客户端代理在从服务器收到响应之前超时。在这种情况下,它会导致客户端上的TimeoutException。
3.服务器持续等待客户端的TCP ACK,它永远不会收到。

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

所以基本上看起来,WCF代码需要很长时间来响应,客户端超时,我在IIS日志中观察到的只是一个症状,而不是一个问题。

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

从这里复制(WCF REST Service goes to sleep after inactivity)

The application pool hosting your service defines Idle Time-out property (advanced settings of app pool in IIS management console) which defaults to 20 minutes. If no request is received by the app pool within idle timeout the worker processes serving the pool is terminated. After receiving a new request the IIS must start the process again,the process must load application domain and all related assemblies,compile .svc file,run the service host and process the request.The solution can be increasing idle time-out but the meaning of this time-out is correct handling of server resources. If the process is not needed it should be stopped. Another ugly workaround is using some ping process (for example cron job or scheduled task on the server) which will regularly ping call some method on the service or page in the same application.

WCF服务:状态200,sc-win32状态为64的更多相关文章

  1. 从Android应用程序中消耗WCF Web服务?

    我想从Android应用程序中使用WCFWeb服务.我曾经使用过.asmxweb服务,但我不知道如何在Android应用程序中使用SCFWeb服务.我用谷歌搜索它但没有找到任何东西.如果有人做过,请帮助我.提前致谢.解决方法Hereisanarticleexplaininghowtoconsumewebservicewithandroidingeneral当涉及到WCF并且可以与您想要小心的jav

  2. 具有证书的WCF客户端身份验证

    同一服务正在使用.pfx证书进行身份验证。客户端不愿意共享.pfx文件,并坚持要求我实现一种使用.cer证书的方法。我已尝试安装证书并将其导出为.pfx格式,但由于.cer文件没有私钥,因此禁用了以.pfx导出的选项。

  3. wcf – ClientCredentialType = Windows和= Ntlm之间的差异

    FeedbackID=354236这种情况听起来类似于clientCredentialType=Windows在域帐户下运行时失败,并且在本地帐户下运行时工作).问题是建议的修复程序需要更改WCF客户端配置文件–但在我的情况下,我使用SOAP1.1与非WCF客户端.clientCredentialType=Windows使用内置的Windows身份验证,可以通过ActiveDirectory和NTLM.显然,NTLM类型将仅使用NTLM进行身份验证.我相信你已经看过了,但这里是WCF安全性的链接:http

  4. 如何在1个Windows服务中托管2个WCF服务?

    我有一个WCF应用程序,它有两个服务,我试图使用net.tcp在一个Windows服务中托管.我可以运行任何一种服务,但只要我尝试将它们都放在Windows服务中,只有第一个服务加载.我已经确定第二个服务ctor正在被调用,但OnStart永远不会被激活.这告诉我WCF发现加载第二个服务有问题.使用net.tcp我知道我需要打开端口共享并启动服务器上的端口共享服务.这一切似乎都运作正常.我已经尝试

  5. windows-services – Msmq和WCF服务

    我是否遗漏了为队列和Windows服务设置的任何权限,如果是这样,你能否建议在哪里添加这些权限?汤姆·霍兰德有一个关于使用WCF的MSMQ的三部分博客系列–非常值得一试!

  6. 在带有WCF的App.config中使用Windows角色身份验证

    谢谢如果我理解得很好,你想在运行时选择角色.这可以通过WCF操作中的permission需求来完成.例如.

  7. wcf – 什么是任务管理器中的CPU时间?

    我有一些WCF服务托管在Windows服务中.昨天我看了任务管理器,注意到我的Windows服务进程的cpu时间是5个小时以上,而大多数其他进程都是0.这意味着什么?

  8. .net – 在IIS 7.5中托管WCF与Windows服务的性能注意事项

    我有一个简单直接的问题:是否有任何性能优势,我不知道什么时候比较主机的IIS7.5中的WCF服务与Windows服务?

  9. wcf – 为我配置“使用端点配置服务”演示失败(Microsoft / endpoint.tv / Pluralsight)

    HTTP无法注册URLhttp://:8732/EvalService/….:P我试过评论新的终点无济于事.即使是原始的也会因此错误而失败.如果我把它们放回原来的端口[不是那么]1337也没关系.这是App.config,并没有什么突出的问题:有什么问题/我该如何解决?

  10. 需要一步一步的WCF作为Windows服务

    我正在尝试找到一个(好的)分步创建WCF并将其作为Windows服务托管的示例.我正在使用VS2010并且有一个带有1个函数的简单WCF.请不要谷歌和发布;我正在寻找某人实际使用过的资源.我所做的大部分Google搜索都没有达到我想要做的事情.我只想获取我的WCF库,并找到一种方法将其安装为WindowService.我在2008年完成了,但2010年是……

随机推荐

  1. static – 在页面之间共享数据的最佳实践

    我想知道在UWP的页面之间发送像’selectedItem’等变量的最佳做法是什么?创建一个每个页面都知道的静态全局变量类是一个好主意吗?

  2. .net – 为Windows窗体控件提供百分比宽度/高度

    WindowsForm开发的新手,但在Web开发方面经验丰富.有没有办法为Windows窗体控件指定百分比宽度/高度,以便在用户调整窗口大小时扩展/缩小?当窗口调整大小时,可以编写代码来改变控件的宽度/高度,但我希望有更好的方法,比如在HTML/CSS中.在那儿?

  3. 使用Windows Azure查询表存储数据

    我需要使用特定帐户吗?>将应用程序部署到Azure服务后,如何查询数据?GoogleAppEngine有一个数据查看器/查询工具,Azure有类似的东西吗?>您可以看到的sqlExpressintance仅在开发结构中,并且一旦您表示没有等效,所以请小心使用它.>您可以尝试使用Linqpad查询表格.看看JamieThomson的thispost.

  4. windows – SetupDiGetClassDevs是否与文档中的设备实例ID一起使用?

    有没有更好的方法可以使用DBT_DEVICEARRIVAL事件中的数据获取设备的更多信息?您似乎必须指定DIGCF_ALLCLASSES标志以查找与给定设备实例ID匹配的所有类,或者指定ClassGuid并使用DIGCF_DEFAULT标志.这对我有用:带输出:

  5. Windows Live ID是OpenID提供商吗?

    不,WindowsLiveID不是OpenID提供商.他们使用专有协议.自从他们的“测试版”期结束以来,他们从未宣布计划继续它.

  6. 如果我在代码中进行了更改,是否需要重新安装Windows服务?

    我写了一个Windows服务并安装它.现在我对代码进行了一些更改并重新构建了解决方案.我还应该重新安装服务吗?不,只需停止它,替换文件,然后重新启动它.

  7. 带有双引号的字符串回显使用Windows批处理输出文件

    我正在尝试使用Windows批处理文件重写配置文件.我循环遍历文件的行并查找我想要用指定的新行替换的行.我有一个’函数’将行写入文件问题是%Text%是一个嵌入双引号的字符串.然后失败了.可能还有其他角色也会导致失败.如何才能使用配置文件中的所有文本?尝试将所有“在文本中替换为^”.^是转义字符,因此“将被视为常规字符你可以尝试以下方法:其他可能导致错误的字符是:

  8. .net – 将控制台应用程序转换为服务?

    我正在寻找不同的优势/劣势,将我们长期使用的控制台应用程序转换为Windows服务.我们为ActiveMQ使用了一个叫做java服务包装器的东西,我相信人们告诉我你可以用它包装任何东西.这并不是说你应该用它包装任何东西;我们遇到了这个问题.控制台应用程序是一个.NET控制台应用程序,默认情况下会将大量信息记录到控制台,尽管这是可配置的.任何推荐?我们应该在VisualStudio中将其重建为服务吗?我使用“-install”/“-uninstall”开关执行此操作.例如,seehere.

  9. windows – 捕获外部程序的STDOUT和STDERR *同时*它正在执行(Ruby)

    哦,我在Windows上:-(实际上,它比我想象的要简单,这看起来很完美:…是的,它适用于Windows!

  10. windows – 当我试图批量打印变量时,为什么我得到“Echo is on”

    我想要执行一个简单的批处理文件脚本:当我在XP中运行时,它给了我预期的输出,但是当我在Vista或Windows7中运行它时,我在尝试打印值时得到“EchoisOn”.以下是程序的输出:摆脱集合表达式中的空格.等号(=)的两侧可以并且应该没有空格BTW:我通常在@echo关闭的情况下启动所有批处理文件,并以@echo结束它们,所以我可以避免将代码与批处理文件的输出混合.它只是使您的批处理文件输出更好,更清洁.

返回
顶部