WCF服务限制

Spe*_*nce 17 .net c# wcf soa throttling

让我们假设我正在处理涉及发送大量数据的服务.

如果我使用WCF实现这一点,WCF将根据每个请求服务的内存量来限制服务吗?或者,每当我收到大量的服务命中时,我是否会连续出现内存异常?

我很好奇在WCF之外处理这个问题,我对服务开发还有点新意...

Eno*_*pal 13

虽然使用绑定属性和像Andrew Hare这样的readerQuotas建议在大多数实际应用中允许基本上无限大小,但请记住,如果您接受长时间运行的命令,无论该服务如何,您将遇到其他问题,例如超时构造(使用WCF或不使用).

无论您的消息大小是多少,都需要对WCF服务进行限制以保证其性能不受淹没.如果您在IIS或WAS中托管它,您将为这些托管环境提供额外的内置功能,使您的服务更加"高可用".但是,您仍需要注意并发问题.以下WCF配置提供了设置某些限制值的示例.

   <system.serviceModel>

    ...

     <behaviors>
       <serviceBehaviors>
         <behavior name="GenericServiceBehavior">
           <serviceTimeouts transactionTimeout="00:09:10"/>
           <serviceThrottling
             maxConcurrentCalls="20"
             maxConcurrentSessions="20"
             maxConcurrentInstances="20"
           />
         </behavior>
       </serviceBehaviors>
     </behaviors>
   </system.serviceModel>
Run Code Online (Sandbox Code Playgroud)