2
私は次のようにファイルをアップロードするためにASP.NETウェブAPI 2.2を使用しています:Request.Content.ReadAsMultipartAsync()とのOutOfMemory例外
[HttpPost]
public async Task<IHttpActionResult> Post()
{
/* read the content */
var contentTypeHeader = Request.Content.Headers.ContentType;
var contentLength = Request.Content.Headers.ContentLength;
/* Here I get the exception if the file is > 60/70 MB */
var filesProvider = await Request.Content.ReadAsMultipartAsync();
var fileContents = filesProvider.Contents.FirstOrDefault();
var headers = fileContents.Headers;
Stream fileStream = await fileContents.ReadAsStreamAsync();
// ... code not related to this question
}
私は順番に、次のようにすでにセットアップweb.configファイルを持っています
<system.web>
<httpRuntime targetFramework="4.5" maxRequestLength="1048576" />
</system.web>
そして
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
</system.webServer>
をしかし、私はまだ、この例外を取得:データの1ギガバイトまでのファイルを受け入れます。例外の構造は次のとおりです。
An error occurred System.IO.IOException: Error writing MIME multipart body part to output stream. ---> System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
↵ at System.IO.MemoryStream.set_Capacity(Int32 value)
↵ at System.IO.MemoryStream.EnsureCapacity(Int32 value)
↵ at System.IO.MemoryStream.Write(Byte[] buffer, Int32 offset, Int32 count)
↵ at System.IO.MemoryStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
したがって、.NET例外のように見えますが、私のコードに関連していません。しかし、マルチファイルを使って大きなファイルをアップロードするにはどうすればいいですか?