3

我正在开发托管多个 WCF OData 服务的服务器应用程序(C# 4.0,VS2010)。我观察到服务的非常奇怪的行为,并且找不到任何描述我在应用程序中看到的内容的文档。

当服务的客户端由于某种原因断开连接时,服务会按照我的预期进入故障状态。但是它们仍然可以继续正常工作(它们可以毫无问题地接受来自新客户端的连接并继续按预期提供数据 - 所有这些都处于相应 DataServiceHosts 的故障状态)。

如果我增加并发客户端数量,有时同时连接最多的服务之一会静默停止工作。如果我尝试在浏览器中打开其 URL,它会返回“找不到端点”消息。没有任何例外或其他明显的症状我可以用来深入研究这一点。它只是静静地停止。尽管处于故障状态,但具有较少并发客户端的其他服务继续正常工作。有时巨大的并发访问不会触发服务的这种静默死亡,它会继续正常工作。

另一个奇怪的事实。当我打开 WCF 跟踪时,我无法重现静默服务停止。它简直完美。所以我不能使用 WCF 跟踪来调查问题的根源。

谁能解释一下什么是真正的 WCF OData 服务生命周期?为什么它继续在故障状态下工作?静音停止的原因可能是什么?每次客户端断开连接后是否应该重新启动 WCF OData 服务?

4

0 回答 0