WCF分布式開發常見錯誤解決(10):套接字連接中斷,The socket connection was aborted
(使用Windows Service作為宿主的時候也會出現這樣的情況,搜索的) 我們這裡是自定義托管宿主,在進行WCF編程開發過程時,使用NetTcpBinding綁定協議,作為通訊協議,可能會引發這樣的異常,導致數據如法傳輸。套接字連接中斷,可能是由於消息處理錯誤,或者遠程宿主接受超時引起,或者是底層網絡資源問題導致,本地套接字時間是'00:00:59.7656250'。具體信息如下:
The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '00:00:59.7656250'.
此問題的的解決辦法:
我查詢了很多資料,國外論壇也有人已經遇到這樣的問題。
1.http://social.msdn.microsoft.com/forums/en-US/wcf/thread/637e6097-9161-40ee-8578-46388b7647cd
2.http://social.msdn.microsoft.com/forums/en-US/wcf/thread/06cb1522-31f0-4ce3-85f0-02656228a8e1/
這個是兩個MSDN上討論的解決辦法,更換其他的綁定協議確實可以解決問題。
參考代碼如下:
WSHttpBinding binding = new WSHttpBinding();
binding.ReceiveTimeout = new TimeSpan(10, 10, 10);
我測試的結果使用basicHttpBinding協議也可以,不會出現這樣的異常。
如果大家有好的經驗,也歡迎補充。