【问题标题】:Fastest way to retrieve and update data using BasicHttpBinding使用 BasicHttpBinding 检索和更新数据的最快方法
【发布时间】:2011-11-24 17:59:47
【问题描述】:

我应该使用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...?
  • :-) 你有点过分了..customBinding 基于 httpbinding..

标签: c# wcf


【解决方案1】:

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

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

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

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

如果您有一个“健谈”的 API(大量的小调用),首先要做的是将调用合并到更大和更少的调用。

【讨论】:

  • +1 用于 protobuf 呵呵。绝对很快。 WCF 确实会导致大量开销,我们使用以 nancy 编写的 REST 服务,这些服务会序列化为 protobuf。
  • @the_ajp 我真的需要看看南希
  • 我正在使用 DataTables...看到 protobuf 适应 .NET 很有趣...关于如何在 WCF 中使用它的任何链接?
  • @srivatsayb 当然,like so - 但不是 DataTable - 与核心 protobuf 模型不够接近(尽管我确实 protobuf 的 DataTable 编码器)跨度>
  • 我可以在某处找到使用 protobuf 的分步过程吗?例如如何引用 dll 然后更改配置的步骤……当我似乎用步骤 i 做某事时,我遇到了错误网上找的。。
【解决方案2】:

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

也检查一下:

netTcpBinding or wsHttpBinding

【讨论】:

  • 在很多时候,我看到 netTcp 比简单的绑定要差得多。大概是由于 NDCS 造成的所有类型元数据。这可以提供帮助,但它不是“这总是更好”的魔法。它更适合特定场景
  • 我已经尝试过 NetTcp,但我遇到了防火墙问题,无法修复它......如果它变得快 15%,BasicHttp 会为我做的
猜你喜欢
  • 2012-07-13
  • 1970-01-01
  • 2011-08-04
  • 1970-01-01
  • 2018-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-20
相关资源
最近更新 更多