使用nettcpbinding时的WCF通信异常

问题描述 投票:0回答:1

我们有一个基于NetTCPBinding的自托管WCF服务。几周后,在4000-5000个请求后随机出现一个通讯异常,此后所有请求再次正常运行。另外,如果我重复相同的失败请求,该请求也将起作用。这种不当行为出现在一个客户安装处,对于其他100个客户,WCF服务在相同的实现和NetTCPBinding下也可以正常工作。从我们这边没有更新,问题开始了一整夜。我激活了服务跟踪查看器工具-但是我找不到任何引起此问题的东西。因此,我检查了Windows Update:我已经看到Windows Update https://support.microsoft.com/de-at/help/4538158/kb4538158之后(其中包括)表明Microsoft“解决了” WCFNetTCP绑定问题。但是,似乎他们在这里破坏了某些东西:-)

因此,我将NetTCPBinding更改为BasicHTTPBinding,并且不再出现此异常。但是,我们想使用NetTCPBinding而不是BasicHTTPBinding ...还有其他人遇到这个问题吗?

c# wcf wcf-binding socketexception communicationexception
1个回答
0
投票

通信错误/超时错误通常是由于客户端代理未正确关闭引起的。我建议您将客户端代理/服务通道放在Using语句中。

using (ServiceReference1.ServiceClient client=new ServiceClient())
            {
                var result = client.Test();
                Console.WriteLine(result);
            }

此外,请尝试设置以下属性。

NetTcpBinding binding = new NetTcpBinding();
binding.MaxBufferSize = Int32.MaxValue;
binding.MaxBufferPoolSize = Int32.MaxValue;
binding.SendTimeout = new TimeSpan(0, 10, 0);
binding.ReceiveTimeout = new TimeSpan(0, 10, 0);
binding.OpenTimeout = new TimeSpan(0, 10, 0);

如果问题仍然存在,请随时告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.