我应该使用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>
答案 0 :(得分:3)
这在很大程度上依赖于上下文......有多少请求被发送?每个的大小是多少?等
如果您使用的是http和二进制文件,那么您应该查看启用MTOM。这在basicHttpBinding元素上很容易。我不确定如何在自定义绑定上执行此操作。
您尚未说明如何发送数据; DataTable与List-of-T等不同。
我个人在使用basicHttpBinding + MTOM改善WCF性能方面取得了很大成功,但是交换了protobuf-net的串行器(通常比NDCS或DCS的带宽小得多);这样做有多容易取决于上下文:如果你在客户端和服务器上使用程序集共享,那通常是微不足道的;如果您使用“mex”,则需要更多努力。
如果你有一个“健谈”的API(许多小电话),首先要做的是将呼叫合并到更多和更少的电话。
答案 1 :(得分:2)