C#WCF服务上传文件,实现IHttpHandler,Stream文件

时间:2016-10-13 06:27:46

标签: c# wcf file-upload

我正在寻找一种将一些文件上传到服务器的方法,并了解基本字节[]可以解决问题。所以我实现了一个基本的上传方法,它接受一个byte []并使用一个流将该byte []附加到一个文件,直到所有的字节都被发送完毕。但是,这有两个问题。口渴,非常缓慢,握手过程需要花费太多时间。其次,发送byte [],大约1024字节,每个调用需要很长时间才能获得更大的文件。我问一个程序员有什么更好的方法,他回答说,“使用Ihttphandler并创建一个流”。这对我来说没什么意义。

任何人都可以告诉我可以或指出我正确的方向创建与服务器的连接,该服务器不需要为每个可以将大型或小型文件上传到服务器的客户端调用进行握手吗?我理解这个问题没有代码,因为我不知道从哪里开始创建流式上传形式。一个可接受的答案甚至是指向我创建自己的代码的某些方向。我已阅读this,因为没有代码示例非常困惑。

我现在的设置是我有一个托管在控制台应用程序中的wcf服务。然后另一个调用此wcf服务上传方法的控制台应用程序。

1 个答案:

答案 0 :(得分:0)

您可以在ServiceContract中使用Stream类而不是byte []。

您应该将绑定的配置设置为transferMode =“Streaming”。

MSDN上有很多可用的示例。 https://msdn.microsoft.com/en-us/library/ms733742(v=vs.110).aspx

<system.serviceModel>
 …
<bindings>
  <basicHttpBinding>
    <binding name="ExampleBinding" transferMode="Streaming"/>
  </basicHttpBinding>
</bindings>
 …