我正在考虑将 WCF 用于一个项目,该项目需要人们能够将大文件(64MB-1GB)上传到我的服务器。我将如何使用 WCF 处理此问题,可能能够恢复上传。
为了处理更大的客户群,我想通过 WCF 测试 JSON。这将如何影响文件上传?可以通过 JSON 完成,还是需要切换到 REST 来完成上传部分?
如果你想上传大文件,你肯定需要研究一下WCF 流模式 http://msdn.microsoft.com/en-us/library/ms731913.aspx.
基本上,您可以更改绑定上的传输模式;默认情况下,它是缓冲的,即整个消息需要在发送方上缓冲、序列化,然后作为一个整体进行传输。
使用流式传输,您可以定义单向流式传输(仅用于上传、仅用于下载)或双向流式传输。这是通过将绑定的transferMode 设置为来完成的StreamedRequest
, StreamedResponse
,或者只是简单的Streamed
.
<bindings>
<basicHttpBinding>
<binding name="HttpStreaming"
maxReceivedMessageSize="2000000"
transferMode="StreamedRequest"/>
</basicHttpBinding>
</bindings>
然后你需要有一个服务合约,它要么接收一个类型的参数Stream
(用于上传),或返回 type 的值Stream
(用于下载)。
[ServiceContract]
public interface IFileUpload
{
[OperationContract]
bool UploadFile(Stream stream);
}
应该这样做!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)