使用BasicHttpBinding检索和更新数据的最快方法

时间:2011-11-24 17:59:47

标签: c# wcf

我应该使用BasicHttpBinding的哪些设置,以便我的WCF服务尽可能快地获取数据并将数据更新到SQL服务器。

安全不是问题..

目前我的客户端配置就是这样。它有效,但我想尽可能加快速度: -

<system.serviceModel>
   <bindings>
      <customBinding>
         <binding name="BinaryHttpBinding">
            <binaryMessageEncoding />
            <httpTransport />
         </binding>
      </customBinding>
   </bindings>
   <client>
      <endpoint name="httpEndpoint" 
          address="my address"
          binding="customBinding"
          bindingConfiguration="BinaryHttpBinding"
          contract="FLOW5ServiceDLL.IFLOW5WCFService"/>
      <endpoint 
          address="mex"
          binding="mexHttpBinding"
          contract="IMetadataExchange" />
   </client>
</system.serviceModel>

2 个答案:

答案 0 :(得分:3)

这在很大程度上依赖于上下文......有多少请求被发送?每个的大小是多少?等

如果您使用的是http和二进制文件,那么您应该查看启用MTOM。这在basicHttpBinding元素上很容易。我不确定如何在自定义绑定上执行此操作。

您尚未说明如何发送数据; DataTable与List-of-T等不同。

我个人在使用basicHttpBinding + MTOM改善WCF性能方面取得了很大成功,但是交换了protobuf-net的串行器(通常比NDCS或DCS的带宽小得多);这样做有多容易取决于上下文:如果你在客户端和服务器上使用程序集共享,那通常是微不足道的;如果您使用“mex”,则需要更多努力。

如果你有一个“健谈”的API(许多小电话),首先要做的是将呼叫合并到更多和更少的电话。

答案 1 :(得分:2)

如果你在同一个网络中,我会使用netTcpBinding进行快速二进制传输

同时检查一下:

netTcpBinding or wsHttpBinding