我們在高流量站點中有一個WCF net.tcp服務。 http://www.artedelcorpo.com/WCF連接限制
它很好地工作了一段時間,然後停止並返回超時錯誤。 當我重新啓動IIS時,它再次運行。
爲什麼? 連接是否有限制?
我們在高流量站點中有一個WCF net.tcp服務。 http://www.artedelcorpo.com/WCF連接限制
它很好地工作了一段時間,然後停止並返回超時錯誤。 當我重新啓動IIS時,它再次運行。
爲什麼? 連接是否有限制?
NetTcp綁定有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>
。
感謝您的答覆。我設置了10分鐘超時和1000個連接。我們每天約有7000名獨特訪客。 – user758977
增加網絡超時會讓您花費時間處理請求。這可以幫助您在短時間的高流量中生存下來,但不會改變您的系統吞吐量。
如果在發生這些問題時,您的硬件在內存和CPU方面仍然存在一些空間,則應該考慮更改併發節流閥。這將允許更多的請求被並行處理。 default throttle values in .NET 3.5實際上相當保守,這可能是一個快速修復(取決於您的服務體系結構)。
這裏有一些很好的配置示例WCF service throttles。
如果您的硬件已超時,並且您仍然收到超時,那麼可能需要對服務進行羣集並添加另一個節點。
運行WCF跟蹤可能會提供一些見解。 –
錯誤是:「System.Net.Sockets.SocketException(0x80004005):由於線程退出或應用程序請求導致I/O操作中止」 – user758977