【发布时间】:2013-06-21 19:16:14
【问题描述】:
我有一个托管在 IIS 6.0 上的 .NET 3.5 BasicHttpBinding 无安全 WCF 服务。
我根据 MS 的建议提高了服务限制。
我的服务操作同时被调用数百次,并且在某些时候客户端收到超时异常(59:00,这是服务器和客户端超时设置的内容)。
如果我提高超时时间,它只会达到新的限制。
似乎应用程序只是在某个地方“冻结”了,我们无法弄清楚这是怎么发生的。
服务器端的 WCF 跟踪没有提供任何东西。
关于可能是什么问题的任何想法?
谢谢
【问题讨论】:
-
WCF 中的超时可能表明服务中存在问题(通常是某种未处理的异常)。您提到这是托管在 IIS 中的-您知道客户端完成后是否正在关闭他们的频道吗?如果不是这样,这也可能是问题的根源,因为您可能会遇到资源限制,客户可能会“自然死亡”,可以这么说。
-
您提到了数百个并发请求,但它适用于单个请求吗?另外请检查服务器上的事件日志,它可能有系统错误或什么的。
-
您是否正确关闭了您的频道?我们遇到了类似的问题,发现客户端的一些操作没有关闭他们的
IClientChannel,导致大量打开的通道,最终导致服务器无法接受新的连接。 -
我们正在关闭我们的频道。我们正在为每个调用实例化一个新生成的代理,然后在其上调用 .Close() 。顺便说一句,即使 basicHttpBinding 也需要 .Close() 吗?
标签: performance wcf iis throttling