WCF客户端应用程序挂起 - 需要repro建议

时间:2009-10-28 06:42:03

标签: wcf

我有一个WCF应用程序,有几千个客户端连接到在IIS下运行的一对服务。我注意到的是,其中一些客户端陷入了挂起状态,我正试图重现这一点。

首次发现此问题时,我没有修改限制配置,并且服务设置为ConcurrencyMode.Single。我注意到的一件事是服务器上的IISReset导致许多客户端挂起。然而,在我本地计算机上针对IIS运行的客户端上拉这个相同的特技似乎并不会导致问题。

我只在野外捕获了一次,但当时没有启用调试。我目睹的症状是客户端似乎试图打开与Web服务器的连接,但没有成功。在使用Fiddler进行监控时,我看到没有尝试到达服务端点。显然,这让我怀疑客户代理。

对于正在发生的事情,我有一个非常可靠的预感 - 即当服务抛出异常时,我一直在使用“Close()”而不是“Abort()”,我相信这会导致频道损坏。但考虑到努力获得新版本,我需要通过让我自己的计算机上的客户端挂起来重现此问题,然后才能开始更改代码。

我应该从哪里开始?

提前致谢,

roufamatic

2 个答案:

答案 0 :(得分:0)

您是否开启了任何日志记录?这有助于诊断问题。它可以在config中完全完成,因此无需构建新版本。使用“服务配置编辑器”工具将其全部设置。 Visual Studio 2008 Training Kit有一个关于如何使用日志记录和日志查看器的好教程。

答案 1 :(得分:0)

我认为这个问题太模糊了,尽管我很好奇人们可能会提出什么建议。事实证明,我的工作站与生产环境之间存在着巨大的差异,一旦解决,我就可以看到问题所在。在这种情况下,以某种方式使用Fiddler来观察流量实际上阻止了错误的发生!现在再问一个问题。