我应该使用 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>
最佳答案
这在很大程度上取决于上下文……发送了多少请求?每个的大小是多少?等等
如果您使用的是 http 和二进制文件,那么您应该考虑启用 MTOM。这在 basicHttpBinding 元素上很容易。我不确定如何在自定义绑定(bind)上执行此操作。
您还没有说明您是如何发送数据的; DataTable 不同于 List-of-T 等。
就我个人而言,我在使用 basicHttpBinding + MTOM 提高 WCF 性能方面取得了很多成功,但将序列化器换成了 protobuf-net(通常带宽明显小于 NDCS 或 DCS);这样做的难易程度再次取决于上下文:如果您在客户端和服务器上使用程序集共享,这通常是微不足道的;如果您使用的是“mex”,则需要付出更多的努力。
如果您有一个“喋喋不休”的 API(很多小调用),首先要做的是将调用合并为更大和更少的调用。
关于c# - 使用 BasicHttpBinding 检索和更新数据的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8261021/