0

我有一个每秒向连接的客户端发送多个回调的服务。为什么当服务发送消息时客户端会在几秒钟或更长时间后收到它们?

以下是配置详细信息:

        <bindings>
                  <wsDualHttpBinding>
                    <binding name="WSDualHttpBinding_IMyService" receiveTimeout="00:30:00" 
    sendTimeout="00:30:00" useDefaultWebProxy="false" maxBufferPoolSize="2147483647" 
maxReceivedMessageSize="2147483647">

                      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
        maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
                      <security mode="None"/>
                    </binding>
                  </wsDualHttpBinding>
                </bindings>
                <behaviors>
                  <serviceBehaviors>
                    <behavior name="Service1Behavior">
                      <serviceMetadata httpGetEnabled="True"/>
                      <serviceDebug includeExceptionDetailInFaults="True"/>
                      <serviceThrottling maxConcurrentCalls="10"
                                maxConcurrentInstances="10"
                                maxConcurrentSessions="5" />
                    </behavior>
                  </serviceBehaviors>
                </behaviors>
4

2 回答 2

1

您所描述的可能与线程创建时间有关。
请参阅此处:WCF 服务可能会在负载下缓慢扩展

“根据执行时间和收到的请求数量,您可能会注意到 WCF 执行时间对于每个收到的请求线性增加大约 500 毫秒,直到进程创建了足够的 IOCP 线程来服务请求或维持传入负载。”

文章中提供了一种解决方法。

于 2012-08-17T15:15:57.987 回答
0

我正在处理同样的问题,查看这些链接以解决问题。

概述似乎是,开箱即用的 WCF 被“锁定”以防止 DoS 漏洞。本质上,您需要按照以下链接中的说明取消对服务的限制。

http://theburningmonk.com/2010/05/wcf-improve-performance-with-greater-concurrency/

http://blogs.msdn.com/b/wenlong/archive/2010/02/11/why-are-wcf-responses-slow-and-setminthreads-does-not-work.aspx

http://weblogs.asp.net/sweinstein/archive/2009/01/03/creating-high-performance-wcf-services.aspx

于 2012-11-09T20:11:30.623 回答