我们在高流量网站上有一个WCF net.tcp服务。 http://www.artedelcorpo.com/
它在一段时间内运行良好,然后停止并返回超时错误。 当我重新启动IIS时,它会再次运行。
为什么呢? 连接是否有限制?
答案 0 :(得分:10)
NetTcp Binding的默认设置为10个连接。您可以在配置的<binding>
部分中增加此值。超时也是如此 - 默认值为1分钟,但您也可以调整关闭超时,打开超时,接收超时和发送超时。
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="MyNetTcpBinding" closeTimeout="00:05:00"
openTimeout="00:05:00" receiveTimeout="00:05:00"
sendTimeout="00:05:00" maxConnections="100" />
<netTcpBinding>
</bindings>
</system.serviceModel>
以上示例将超时设置为5分钟,最大连接数设置为100。
有关详情/信息,请参阅<netTcpBinding>
。
答案 1 :(得分:5)
增加网络超时会为您的处理时间腾出时间。这可以帮助您在短暂的高流量突发中幸存,但它不会改变您的系统吞吐量。
如果出现这些问题时硬件在内存和CPU方面仍有一些空间,则应考虑更改并发性限制。这将允许并行处理更多请求。 default throttle values in .NET 3.5实际上相当保守,这可能是一个快速修复(取决于您的服务架构)。
以下是配置WCF service throttles的一些好的示例。
如果您的硬件已超出并且您仍在获得超时,则可能需要时间来集群服务并添加另一个节点。