【问题标题】:web service data transfer questionWeb服务数据传输问题
【发布时间】:2010-10-14 05:21:15
【问题描述】:

应用程序是使用 C# 构建的。其中一项任务是通过 Web 服务 (SOAP) 将图像文件从服务器传输到客户端。在客户端,图像文件将保存到磁盘,没有网页。

我的一位同事告诉我们,服务器和客户端之间传输的数据必须在 8k 以下,所以我们需要将 2M 的图像文件切成小块。

这是真的吗?

现在数据可以在客户端和服务器之间传输。大小对了,但是内容不对,因为打开接收到的文件显示不一样。我的同事尝试了不同的编码,但没有一个有效。

我们应该使用哪种编码? UTF8?

【问题讨论】:

  • “我的一位同事告诉我们,服务器和客户端之间传输的数据必须低于 8k”,因为?
  • 为什么没有向您的同事提出这个问题?当你很明显不信任他的时候,你为什么要表面上接受他的建议?为什么不要求他用可以检查的事实来支持他的主张呢?只是为了记录,,这不是真的。
  • 他是该领域的专家,而我在该领域的经验有限。我问他为什么会有这个限制。他告诉我们这是标准的。我认为他正在使用 WCF 和 SOAP 来创建我们应用程序的这一部分。
  • 任何“专家”都可以用事实和例子来支持他们的主张。此外,任何“标准”都会有支持它的文档。听起来他们真的不是专家,因为建议是错误的。

标签: c# .net web-services


【解决方案1】:

您可以将该图像文件作为 byte[] 打开并传输它。这样你就不应该有任何编码问题。本文可以提供更多信息:Large Data and Streaming

【讨论】:

    【解决方案2】:

    您可以通过在配置中设置 MaxReceivedMessageSize property 来更改 WCF 请求/响应消息大小的默认限制。 将图像作为二进制对象而不是字符串传输是合理的。

    您可能还需要调整其他限制设置,例如最大数组大小、最大字符串大小等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多