0

我的情况是,我有很多服务会在大型 Silverlight 应用程序中被频繁调用。经过一些非常简单的测试后,我们发现事情正在慢慢变慢。我怀疑它来自服务,因为它来自大量呼叫的大量数据。

我想减少调用次数,但没有从头开始完全重新设计,目前这只是部分可能。

我的所有服务都设置为在其服务行为中使用 PerCall,这是我的配置

                <services>
        <service name="MyServices.Service">
            <endpoint address="" binding="basicHttpBinding" bindingConfiguration="LargeBuffer" contract="MyServices.Interface.Service" />
        </service>
    </services>
    <bindings>
        <basicHttpBinding>
            <binding 
      name="LargeBuffer" 
      closeTimeout="00:10:00" 
      openTimeout="00:10:00" 
      receiveTimeout="00:10:00" 
      sendTimeout="00:10:00" 
      maxBufferSize="2147483647" 
      maxReceivedMessageSize="2147483647"
      >
      <security mode="None">
        <transport clientCredentialType="None" />
      </security>
                <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
            </binding>
        </basicHttpBinding>
    </bindings>

很多这些服务不需要大的缓冲区绑定,这会影响我的性能吗?

编辑

调用本身正在高效运行,但是一旦我们收到几百个请求,事情就会变得爬行

4

1 回答 1

1

在性能非常重要的地方,我发现 FastInfoset 编码很有用。noemax 有一个非常好的商业实现(虽然它有免费试用版,但不是免费的)。

http://www.noemax.com/products/wcfx/index.html

它还可以让您非常有效地进行良好的压缩。

免责声明 - 我只将它与 Windows 一起使用,而不是 Silverlight。它声称支持silverlight。

于 2013-03-02T19:33:40.780 回答