2014-03-26 104 views
2

我在一個非常簡單的WCF服務中遇到了一個奇怪的問題,它正常工作。該服務是一個只有一個操作和響應的Web服務,BasicHttpBinding和所有超時(接收,發送,連接,打開...)設置爲10秒。突然有一天開始很慢(主要是網絡問題),但超時似乎不起作用。服務WCF拖放連接

<binding 
openTimeout="00:00:10" 
closeTimeout="00:00:10" 
sendTimeout="00:00:10" 
receiveTimeout="00:00:10" /> 

我試圖讓這些超時工作,通過連接到Web服務使用套接字,併發送什麼,等待幾秒鐘,但連接只有120秒後破碎,所以確切的超時不起作用。

//connect to the web service 
sock.Connect(address, port); 
//send something invalid 
byte[] buffer = Encoding.Default.GetBytes("hello"); 
sock.Send(buffer); 
//wait to be dropped or something 
sock.Receive(buffer); 

有什麼辦法,如果沒有收到字節手動刪除從服務一定的時間後,連接?

謝謝!

回答

0

由於你在做HTTP綁定,你確定你沒有被IIS中的連接超時設置所捕獲嗎?默認值是2分鐘

http://www.iis.net/configreference/system.applicationhost/sites/sitedefaults/limits

指定IIS等待它斷開被認爲是不活動的一個 連接之前的時間(以秒計)。由於以下原因,連接可被視爲不活動:

對於自託管,這仍然是一個問題。請參閱此主題以瞭解適當的綁定設置。

HTTP Keep-alive and ServiceHost/C#?

+0

這是一個自託管的WCF服務 – mopicus