2
A
回答
4
假设您在客户端上谈到:
一种方式来做到这一点是创建一个从HttpContent派生的FileContent类。在覆盖中,当HTTPClient准备好接收流时,您将获得NetworkStream。
如果您询问服务器端,那么您可以简单地获取HTTPRequestMessage并访问httpRequestMessage.Content.ContentReadStream属性。
更新
默认情况下,WCF传输被限制在65K发送消息。如果你想发送更大的文件,你需要启用“流式传输模式”,你需要增加MaxReceivedMessageSize的大小,这就是为了防止有人通过上传大量文件来杀死你的服务器。
所以,你可以使用绑定配置来做到这一点,或者你可以在代码中做到这一点。下面是做到这一点的代码的一种方式:
var endpoint = ((HttpEndpoint)host.Description.Endpoints[0]); //Assuming one endpoint
endpoint.TransferMode = TransferMode.Streamed;
endpoint.MaxReceivedMessageSize = 1024 * 1024 * 10; // Allow files up to 10MB
2
这个答案仅设计与Web API预览添加一些细节6.
TransferMode
和MaxRecievedMessageSize
是新通过WebApiConfigurationClass
暴露。
var builder = new WebApiConfiguration();
builder.TransferMode = TransferMode.Streamed;
builder.MaxReceivedMessageSize = 1024 * 1024 * 10;
var serviceRoute = new WebApiRoute(route, new WebAPIServiceHostFactory() { Configuration = builder }, typeof(MyService));
我喜欢它!
相关问题
- 1. Web API上传文件
- 2. Wcf Web API沙箱端点处理
- 3. WCF上传文件 - 点子和示例
- 4. WCF REST上传文件
- 5. Angular 2与Web API文件上传
- 6. asp.net Web API文件上传fileData空
- 7. ASP.NET Web api文件上传和IIS
- 8. Silverlight Sharepoint客户端API。上传文件
- 9. 从桌面应用端到端教程上传WCF文件?
- 10. 文件API上传文件
- 11. REST API文件上传
- 12. 创建一个WCF Web Api客户端
- 13. WCF Web API如何向每个端点添加参数
- 14. 通过API上传文件
- 15. 与端点API
- 16. ios 4.3上传文件到wcf json web服务
- 17. 如何创建WCF休息端点以将大型文件上传到ASP.NET MVC
- 18. WCF文件服务器中的端点
- 19. WCF - 通过http上传流文件上传
- 20. 文件传输/ WCF
- 21. WCF使用MTOM上传50Mg文件
- 22. 从android上传文件到wcf
- 23. 将文档上传到Web API
- 24. 上传文件与WCF REST服务
- 25. WCF服务合同从ExtJs前端接收文件上传
- 26. WCF Rest上传文件大小问题
- 27. 只有XML配置文件的WCF服务上的SSL端点
- 28. ASP.NET - SVN web上传前端?
- 29. Web客户端上传值
- 30. 使用wcf恢复和上传文件
我不认为WCF Web API Preview 4支持接受multipart/form-data作为内容类型。我无法实现文件上传的端点。希望这将在下次预览中得到解决。 – aumanets 2011-06-14 19:42:56
您不需要使用multipart/form-data作为内容类型。你可以发送内容作为application/octet-stream – 2011-06-14 19:49:19
我试过使用application/octet-stream并且没有成功。现在我不确定这个问题是由内容类型引起的。当我发出请求时,它没有达到配置的终点,并且不会引发任何异常。也许这是因为发送的数据大于65535字节?你知道如何改变WCF Web API的这个值吗? – aumanets 2011-06-16 09:49:42