[英]WCF Service Side Timeout not executing
我有一個配置為使用basichttpbinding的WCF服務。我想測試服務器端超時,但是在更改配置時看不到任何更改。
這是我的綁定:
<binding name="DefaultBasicBinding" closeTimeout="00:00:30" openTimeout="00:00:30" sendTimeout="00:00:30" maxBufferSize="4194304" maxBufferPoolSize="4194304" maxReceivedMessageSize="4194304">
<readerQuotas maxDepth="100" maxStringContentLength="1000000" maxArrayLength="1000000" maxBytesPerRead="1000000" />
</binding>
我已經研究了很多,無法使其正常工作。 我正在使用wcf測試客戶端來調用有問題的服務,該服務的客戶端超時時間為10分鍾。
我也有一種服務行為,該行為具有30秒的事務超時。 該服務托管在本地IIS中,其中將編譯調試設置為false,將httpruntime執行超時設置為30秒。
<httpRuntime executionTimeout="30" maxRequestLength="67108864"/>
我的服務呼叫持續存在一項服務,該服務最終會調用1分半鍾的定時存儲過程。 每當我調用該服務時,它都會成功執行。
當我將發送超時更改為一分鍾之內的任何時間時,都看不出任何區別。
似乎哪里都沒有答案,而且我還讀到WCF不支持服務端超時?
我需要這方面的幫助。 提前致謝。
該過程涉及四個超時值。 其中三個涉及客戶端,而只有一個適用於服務器端。
openTimeout:嘗試打開與WCF的連接時超時將開始。
closeTimeout:嘗試關閉與WCF的連接時超時將開始。
sendTimeout:這是超時,它指定客戶端可以等待多長時間來完成傳輸數據寫入,直到引發異常。
ReceiveTimeout:這是超時,用於指定從接收請求開始到消息被處理,服務可以等待多長時間。 這是服務器端設置。 當您向服務發送大消息並且服務需要長時間處理時,您將需要增加此設置。
如果我理解正確,那么您需要在服務器端使用RecieveTimeout才能達到所需的結果。
綁定超時旋鈕的簡要說明...
客戶端:
SendTimeout用於初始化OperationTimeout,該操作控制發送消息的整個交互過程(包括在請求-答復情況下接收答復消息)。 從CallbackContract方法發送回復消息時,此超時也適用。 打開和關閉通道時(沒有傳遞明確的超時值時)使用OpenTimeout和CloseTimeout。 不使用ReceiveTimeout。 服務器端:
發送,打開和關閉超時與客戶端相同(用於回調)。 ServiceFramework層使用ReceiveTimeout初始化會話空閑超時。
從這篇文章 。 看看並重新檢查您的配置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.