WCF非常慢

时间:2011-12-20 03:16:20

标签: c# .net wcf wcf-binding

我有一个返回60,000个对象的功能。对象只包含很少的属性。如果我在本地计算机上以非wcf模式执行此功能,则此功能可在几秒钟内完成。但是在本地机器上以低于约束力的WCF模式执行需要30多分钟。

有没有人想知道在WCF模式下提高性能?谢谢!

   <binding name="ReliableBindingConfig" closeTimeout="00:20:00" receiveTimeout="00:40:00" openTimeout="00:20:00" sendTimeout="00:40:00">
      <transactionFlow />
      <reliableSession maxRetryCount="12" ordered="true" inactivityTimeout="00:40:00" />
      <mtomMessageEncoding maxBufferSize="2147483647" maxReadPoolSize="2147483647" maxWritePoolSize="2147483647">
        <readerQuotas maxDepth="32" maxBytesPerRead="4096" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxNameTableCharCount="16384" />
      </mtomMessageEncoding>
      <httpTransport maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
    </binding>

1 个答案:

答案 0 :(得分:1)

调整maxBufferSize和maxBufferPoolSize以优化缓冲区大小。

太大,您的服务太忙,无法将所有对象加载到内存中。太小,会有太多的网络流量,并会减慢速度。

您可以编写一个简单的测试工具来记录查找最佳缓冲区大小所需的时间。