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

本文关键字:方式 数据 更新 BasicHttpBinding 检索 使用 | 更新日期: 2023-09-27 18:15:33

我应该使用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>

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

这在很大程度上取决于上下文…正在发送多少请求?每个的尺寸是多少?等

如果您正在使用http和二进制,那么您应该考虑启用MTOM。这在basicHttpBinding元素上很容易做到。我不确定如何在自定义绑定上做到这一点。

你没有说明你是如何发送数据的;DataTable不同于List-of-T,等等

就我个人而言,我在使用basicHttpBinding + MTOM提高WCF性能方面取得了很多成功,但将序列化器换成了protobuf-net(通常比NDCS或DCS的带宽要小得多);这是多么容易做到,再一次,取决于上下文:如果你在客户端和服务器上使用程序集共享,它通常是微不足道的;如果您使用"mex",则需要更多的努力。

如果你有一个"喋喋不休"的API(许多小调用),首先要做的是将调用合并为更大更少的调用。

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

也检查这个:

netttcpbinding或wsHttpBinding