2010-11-01 22 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