我已經配置我的WCF這些超時較大:WCF超時比配置
public static NetTcpBinding MakeTcpBinding(bool isClient)
{
return new NetTcpBinding(SecurityMode.None, false)
{
HostNameComparisonMode = HostNameComparisonMode.StrongWildcard,
TransactionFlow = false,
PortSharingEnabled = true,
Security = {Transport = {ClientCredentialType = TcpClientCredentialType.None}},
ReceiveTimeout = isClient ? TimeSpan.FromSeconds(5) : TimeSpan.FromDays(1),
SendTimeout = isClient ? TimeSpan.FromSeconds(1) : TimeSpan.FromSeconds(5),
OpenTimeout = TimeSpan.FromSeconds(1),
CloseTimeout = TimeSpan.FromSeconds(5),
MaxReceivedMessageSize = int.MaxValue,
ListenBacklog = int.MaxValue,
MaxBufferSize = int.MaxValue,
MaxBufferPoolSize = 524288,
ReaderQuotas =
{
MaxArrayLength = int.MaxValue,
MaxStringContentLength = int.MaxValue,
MaxDepth = int.MaxValue,
MaxBytesPerRead = int.MaxValue,
MaxNameTableCharCount = int.MaxValue
}
};
}
當客戶端連接到一個不存在的服務器,應該設置imeout爲1秒。
但是,實際上打開時,我看到21秒的超時。
DEBUG 2013年7月31日18:12:44712 Communication.WcfCommunicator - NotifyAllReceivers:類型:AskWhoIsAwake,SentDate:2013年7月31日18時12分44秒 AM,DetectSessionId:37106dee-b563-458b -9eb7-a90e81f82563 - 1個
DEBUG 2013年7月31日18:13:05746 Communication.WcfCommunicator - 無法連接到 的net.tcp://notup/xxx.svc/motup_www-xxx-com。連接嘗試 持續時間跨度爲00:00:00.9879988。 TCP錯誤代碼10060:A 連接嘗試失敗,因爲連接方在一段時間後沒有正確響應 響應,或者建立的連接失敗 因爲連接的主機未能響應42.42.42.42:808。 - 6
什麼導致額外的20秒超時?
你如何計算21秒超時?我看到'連接嘗試持續時間跨度爲00:00:00.9879988',因此傳輸在987 ms(非常接近1秒)之後引發了連接異常,這與您所期望的有所不同 –
時間戳顯示21秒的差異儘管 – Cine
可能重複[WCF客戶端忽略超時值時服務](http://stackoverflow.com/questions/11902985/wcf-client-ignores-timeout-values-when-service-down) – Cine