WCF客户端崩溃并禁用所有其他tcp / ip连接

时间:2011-06-14 19:28:20

标签: wcf c#-4.0

我有一个WCF客户端用于与WCF主机通信。客户端每隔2分钟与主机通信以发送一些信息,之后我在连接上执行Close()。以下每两分钟运行一次:

var binding = new NetTcpBinding(SecurityMode.None, false);
binding.CloseTimeout = TimeSpan.FromMinutes(1);
binding.OpenTimeout = TimeSpan.FromMinutes(1);
binding.ReceiveTimeout = TimeSpan.FromMinutes(10);
binding.SendTimeout = TimeSpan.FromMinutes(1);
binding.TransferMode = TransferMode.Buffered;
binding.TransactionProtocol = TransactionProtocol.OleTransactions;
binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
binding.ListenBacklog = 10;
binding.MaxBufferPoolSize = 524288;

// Default is 65536
binding.MaxBufferSize = 965536;
binding.MaxConnections = 10;

// Default is 65536
binding.MaxReceivedMessageSize = 965536;

binding.ReaderQuotas.MaxDepth = 32;
binding.ReaderQuotas.MaxStringContentLength = 90000;
binding.ReaderQuotas.MaxArrayLength = Int32.MaxValue;
binding.ReaderQuotas.MaxBytesPerRead = 4096;
binding.ReaderQuotas.MaxNameTableCharCount = Int32.MaxValue;

wcfClient = new LabStatsServiceClient(binding, new EndpointAddress(endPointAddress));   

try {
   // Do some communication with the server
   ...
} finally {
   // Close the connection
   wcfClient.Close();
}

在某些机器上 - 少数几个 - 客户端会像这样运行2天然后突然停止工作。当它停止工作时,各种各样的事情在客户端变得奇怪。与TCP / IP无关。从客户端,我不能再telnet到任何其他服务,浏览任何网站,打开到其他PC的RDP会话等。一旦我重新启动客户端,一切都会清除并再次运行。

似乎有一些与泄漏相关的事情 - 泄漏的tcp连接,或者可能是内存泄漏,但我不确定它会是什么。除了关闭它以防止泄漏之外我还需要做更多的事吗?关于如何修复或诊断问题的任何其他建议?

更新

我只是想提一下,我使用了进程资源管理器,而Tcp / ip选项卡最多只能显示3个项目。

0 个答案:

没有答案