c# WCF服务上传文件,实现IHttpHandler,流文件
本文关键字:文件 实现 IHttpHandler WCF 服务 | 更新日期: 2023-09-27 18:12:47
我正在寻找一种将一些文件上传到服务器的方法,并了解到一个基本的byte[]可以做到这一点。因此,我实现了一个基本的上传方法,它接受一个字节[],并使用流将该字节[]附加到文件中,直到所有字节都被发送。然而,这有两个问题。首先,它是非常缓慢的,握手的过程需要太多的时间。其次,发送超过1024字节的byte[]对于更大的文件,每次调用会花费很长时间。我问一个程序员有什么更好的方法,他的回答是:"使用Ihttphandler并创建一个流"。这对我来说没什么意义。
有谁能告诉我或指出我在正确的方向创建一个连接到服务器,不需要握手的每个客户端调用,可以上传或大或小的文件到服务器?我知道这个问题没有代码,这是因为我不知道从哪里开始创建一个流形式的上传。一个可以接受的答案甚至是给我指出一些创建我自己的代码的方向。我读过这篇文章,因为没有代码示例,所以非常困惑。
我现在的设置是我有一个托管在控制台应用程序中的wcf服务。然后另一个控制台应用程序调用这个wcf服务上传方法。
你可以在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>
…