2010-11-01 40 views
1

我使用異步WCF在循環中調用(說的循環運行45次迭代)使用異步WCF調用時請求限制?

 ServiceClient client = ServiceClientFactory.Instance().GetServiceClient(); 

     for (int count = 0; count < 45; count++) 
     { 

      client.BeginSendCount(textBox1.Text, client_SendCountCompleted , client); 

     } 

當這發生時,並不是所有的請求都在服務接收(像20只收到)。但是,如果我同步執行,所有呼叫都在服務器上接收。

我使用NetTcp與以下設置結合,

closeTimeout = 「00:01:00」 openTimeout = 「00:01:00」 receiveTimeout = 「00:01:00」 的SendTimeout =「00 :01:00"

[在這裏我試圖減少超時在其他一些論壇建議,這也沒有什麼差別]

而且我使用的是SingleInstance與‘NoConcurrency’在服務器端(我認爲這是最好的環境)。並託管在一個Windows服務。

有沒有人有想法?

幫助讚賞。

/BB

+0

我肯定一些綁定選項提供保障的能力,有序和可靠的(即確認)交付.... – brumScouse 2010-11-01 21:59:17

回答

1

您用什麼來託管服務? IIS可能會決定將其淹沒並停止接受請求。我會研究這些設置。或者,您可能會找到一種方法避免發出如此多的請求。

+0

這種託管作爲WINSERVICE和真我接受這樣的事實,這是太多的電話,但這麼多迭代很少見,除了同步調用工作正常。感謝您的快速回復,我已經更新了有關更多信息的問題。 – Illuminati 2010-11-01 22:16:54

+0

你提到你已經「減少了超時時間」來提供幫助,但是我認爲你應該延長超時時間,因爲服務器可能在1分鐘內承受過多的響應(特別是如果它們是單一的/沒有併發的)。嘗試將它們全部推到10分鐘。 – 2010-11-01 22:21:19

+0

這並沒有幫助:( – Illuminati 2010-11-01 22:29:12