【问题标题】:Strategies for dealing with varbinary(max) and C# Web API处理 varbinary(max) 和 C# Web API 的策略
【发布时间】:2014-05-20 07:25:03
【问题描述】:

我有一个将实体推送到 Web 服务的应用程序,其中一些实体包含存储为 varbinary(max) 的 byte[]。文件本身并不是很大,通常是 100KB 左右,但一次推送通常有 10 到 20 个。我看到性能方面的潜在改进是整个实体被编码为 JSON 并向上推。对于 byte[]/varbinary 字段,这使得 JSON 对象非常大,而且速度很慢 - 发送 5 个图像实体需要 3 分钟以上的时间。我还没有找到很多关于这个序列化/序列化和消息大小是否会导致这样的问题的东西。我的一个想法是将图像实体作为直接二进制数据发送。在建议方面我还没有真正看到太多其他东西,所以我很好奇是否有人对某种方式的性能有更好的想法或争论。

【问题讨论】:

    标签: c# json entity-framework


    【解决方案1】:

    我会打开压缩(除非你已经这样做了)。

    这里有一个提示:

    What header should be used for sending GZIP compressed JSON from Android Client to Server?

    【讨论】:

      【解决方案2】:

      我在最近的一个项目中使用了 Web API,并使用 MultipartMemoryStreamProvider 流式传输二进制对象(图像/文件等),我的代码源自类似于 --> this

      的示例

      我的 API 签名,传递与二进制相关的任何数据,在这种情况下只是一个 int:

          [HttpPost]
          public async Task<HttpResponseMessage> CreateAttachment(int componentId)
          {
      
              /* Code for reading stream and storing goes here */
              /* Very similar to code in link above */
      
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-22
        • 2011-04-24
        • 1970-01-01
        • 1970-01-01
        • 2010-12-07
        • 2011-02-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多