我正在尝试本文中的代码Part 2: File Upload and Multipart MIME
它基本上是webapi任务的表单帖子,它执行异步读取
await Request.Content.ReadAsMultipartAsync(provider);
为了避免完全上传缓冲和过多的内存使用,我还提出了本文的建议Dealing with large files in ASP.NET Web API
建议创建
public class NoBufferPolicySelector : WebHostBufferPolicySelector
和配置
GlobalConfiguration.Configuration.Services.Replace
(typeof(IHostBufferPolicySelector), new NoBufferPolicySelector());
然而,当我测试使用IE和Firefox从另一台机器上传两个1G文件时,没有NoBufferPolicySelector,它们使用大约90M的内存。用,约180M。
这就是全部吗?这是否意味着WebApi2已经内置了内存缓冲区控制?是否需要额外的策略选择器代码?感谢
答案 0 :(得分:-1)
public class WebHostBufferPolicySelector
: IHostBufferPolicySelector
{
......
public virtual bool UseBufferedOutputStream
(HttpResponseMessage response)
{
return !(content is StreamContent
|| content is PushStreamContent);