2013-04-18 64 views

回答

0

使用WCF請求,可以在配置請求綁定時設置Send或ReceiveTimout。

還有一堆根據不同的綁定類型的你在做什麼(TCP,HTTP/S,管道等),但一般設置超時看起來是這樣的:

Dim xbinding As System.ServiceModel.NetTcpBinding = _ 
      New System.ServiceModel.NetTcpBinding  

With xbinding 
    .SendTimeout = New TimeSpan(0, 10, 0) 
    .ReceiveTimeout = New TimeSpan(0, 10, 0) ' ten minutes 
    ' you can also set your message limits and such in here. 
End With 

顯然,你已經在主機端做了同樣的事情。

+1

我在哪裏談論WCF? – knocte

+0

對不起,我對wcf開發很感興趣,HTTPWebRequests是我設置客戶端事物的方式。希望有關超時的一些用處。 – Brian

0

WebRequest.Timeout property documentation備註部分說:

超時屬性隻影響與GetResponse的方法制作同步請求。

這將表明您正在接收數據,這意味着將其設置爲設置套接字的ReceiveTimeout屬性。

也就是說,以後的話指出:

WebRequest類是一個抽象類。 WebRequest實例在運行時的實際行爲由WebRequest.Create方法返回的後代類確定。有關缺省值和異常的更多信息,請參閱後代類的文檔,例如HttpWebRequest和FileWebRequest。

所以它真的取決於具體的類。例如,HttpWebRequest.Timeout的行爲有所不同。

HttpWebRequest的情況下,當您撥打GetResponse時,Timeout本質上是套接字接收緩衝區超時。但Timeout也適用於GetRequestStream,它沒有真正的Socket模擬。再次請注意,這僅適用於同步請求。

+0

對不起,我的意思是HttpWebRequest.TimeOut,我會改變我的問題,好嗎? – knocte

相關問題