0
我們需要根據客戶向我們提供的WSDL服務規範爲客戶實施WCF服務。我們必須實施該服務,以便它一次只能處理一個請求。通過調節屬性很容易配置服務,我們目前正在使用這種配置。如何在服務繁忙時控制WCF服務響應
<serviceThrottling maxConcurrentCalls="1" maxConcurrentInstances="1" maxConcurrentSessions="1" />
但問題是,如果客戶發出請求時,該服務正忙(該過程可能有時可能需要長達兩個小時的時間來處理),他們的要求將超時。但IIS/WCF服務仍然會將請求放入隊列中。 (這是核心問題!)由於客戶的請求超時,他們發出新的請求,我們最終多次處理相同的請求。
我需要或者
- 發送立即接受202層的狀態,當客戶發出請求,但仍保持處理請求一次一個。 (更好)
- 不接受請求到隊列,讓請求超時,因爲它現在或立即發送拒絕。 (OK)
我也可以管理,如果我能以某種方式探索運行時
- 多少的請求,這是在排隊? (如果我允許處理多個請求,我可以放棄服務忙時到達的請求。)
- 請求最初是在什麼時候發出的? (我可以在一定時間後停止處理來自隊列的請求。)
只是在配置值中設置適當的超時值我猜。 –
嗨,你的意思是在客戶端?不幸的是,我們無法完全控制客戶如何使用該服務。他們表示,目前他們有8分鐘的超時時間,但這往往是不夠的,出於某種原因,他們無法將其延長。 如果你的意思是服務器端,你能幫我解決嗎? –
你也可以在你身邊指定。當你的客戶端找到服務引用時,它會根據你的'wsdl'創建它的配置文件。所以所有的設置都可以由你指定。 –