使用WCF net.tcp绑定时出现随机超时错误

时间:2013-03-01 16:45:46

标签: c# wcf nettcpbinding basichttpbinding

总体概述 - 我有一个带有多个绑定的WCF服务。一个是HTTPS绑定,另一个是net.tcp。该服务托管在IIS上。 HTTPS绑定似乎工作正常,但我有TCP绑定的随机超时错误。

发送给XXX的此请求操作未在配置的超时(00:05:00)内收到回复。分配给此操作的时间可能是较长超时的一部分。这可能是因为服务仍在处理操作,或者因为服务无法发送回复消息。请考虑增加操作超时(通过将通道/代理转换为IContextChannel并设置OperationTimeout属性)并确保该服务能够连接到客户端

我可以清楚地看到问题是超时问题,但它并不总是发生。唯一令我感到困惑的是,我的所有操作都不会花费5个多分钟才能完成。我实际上可以看到我想在屏幕上看到的结果,这让我觉得我的过程结束了。但是当我开始下一个过程时,我得到了这个超时,这是当我意识到我的“服务处于完全状态”并且返回时我发现了这个错误。

有人能告诉我发生了什么吗?我认为错误与TCP协议的工作方式有关,因为我没有在HTTPS中找到它。对服务的同一调用都不会产生此错误。这是非常随意的。

我使用TCP来通过二进制编码的XML格式获得性能提升,但是如果我真正获得任何优势,我会质疑所有这些随机问题。在平均所有调用中,HTTPS似乎差不多慢了一秒,这在TCP的性能方面被认为是一个很好的收获,但是像这样的问题真的值得走TCP路线吗?对这两个协议进行一些比较对我来说也是一个很好的见解。

由于

2 个答案:

答案 0 :(得分:2)

关于比较。 TCP是传输级协议,可提供可靠的数据传输。 HTTPS基于tcp并具有一些数据开销。我认为由于协议的原因,操作完全不同,因此没有相同的理由。您尝试发送哪种类型的数据?

答案 1 :(得分:0)

经过一些测试和监控网络后,我发现问题更多的是网络问题,连接波动导致TCP通道中断。我还不是100%肯定这个问题,但这是我能得出的最有希望的结论。如果有人有任何其他输入,请随时分享,以便我可以提高我的服务可靠性。