簡體   English   中英

C#:超時與經過的時間不匹配

[英]C#: Timeout does not match elapsed time

我有一個連接到服務(webserviceSoap1)的應用程序,並且該服務具有下一個超時配置:

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

據我了解,我在這里說的是所有超時都必須等待至少10分鍾才能結束通信並獲取System.TimeoutException 但是, 這是我不了解的問題 大約2-3分鍾后,我收到一個TimeoutException消息,該程序等待響應將近十分鍾(這是不可能的),並且在同一位置,它說經過的時間約為兩分鍾

超時異常表明它等待了將近10分鍾,但經過的時間約為2分鍾

為什么間隔時間? 我是否正確配置綁定值?

如果我將超時值更改為“ 10:00:00”,它將正確完成此過程。 但是,仍然使用“ 01:00:00”(據我所知是一個小時),該過程在4分鍾后中斷,說它在發送TimeoutException之前等待了“ 00:59:59.16472”。

該問題位於負載均衡器中,該負載均衡器正在管理客戶端到服務器的連接。 客戶端和服務都配置為等待10分鍾的超時。 但是,負載均衡器只有一分鍾,這就是為什么超時比預期的要早的原因。

我要求負載均衡器的管理員將其更改為10分鍾,並且一切正常。

但是,將超時報告給客戶端的方式非常容易引起誤解,因為它指出設置的超時已經達到極限(如果不正確)。

同樣,負載平衡器管理服務中斷的方式可能會誤導,因為在我的情況下,負載平衡器(F5)將等待直到服務返回響應,然后中斷響應,導致自身超時錯誤。 結果,客戶端僅收到到達超時的通知。 此外,客戶端不會在一分鍾內(由負載均衡器設置),也不會在十分鍾內(由服務設置),但在服務返回響應時,將收到此錯誤。

我希望這對任何獲得類似行為的人都有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM