作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在考虑将 WCF 用于一个项目,该项目需要人们能够将大文件 (64MB-1GB) 上传到我的服务器。我将如何使用 WCF 处理这个问题,可能具有恢复上传的能力。
为了处理更大的客户群,我想通过 WCF 测试 JSON。这将如何影响文件上传?可以从 JSON 完成,还是他们需要为上传部分切换到 REST?
最佳答案
如果你想上传大文件,你肯定需要查看WCF Streaming Mode .
基本上,您可以在绑定(bind)上更改传输模式;默认情况下,它是缓冲的,即整个消息需要在发送方缓冲、序列化,然后作为一个整体传输。
使用流式传输,您可以定义单向流式传输(仅用于上传,仅用于下载)或双向流式传输。这是通过将绑定(bind)的传输模式设置为 StreamedRequest
、StreamedResponse
或只是简单的 Streamed
来完成的。
<bindings>
<basicHttpBinding>
<binding name="HttpStreaming"
maxReceivedMessageSize="2000000"
transferMode="StreamedRequest"/>
</basicHttpBinding>
</bindings>
然后您需要有一个服务契约(Contract),该契约(Contract)要么接收类型为 Stream
的参数(用于上传),要么返回类型为 Stream
的值(用于下载)。
[ServiceContract]
public interface IFileUpload
{
[OperationContract]
bool UploadFile(Stream stream);
}
应该可以了!
关于c# - 如何通过 WCF 处理大文件上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1935040/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!