ASP.NETにあるチュートリアルに従って、次のような非同期ファイルアップロードを実行するためのWebAPIコントローラーメソッドを実装しました。
public Task<HttpResponseMessage> PostFormData()
{
// Check if the request contains multipart/form-data.
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
string root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
// Read the form data and return an async task.
var task = Request.Content.ReadAsMultipartAsync(provider).
ContinueWith<HttpResponseMessage>(t =>
{
if (t.IsFaulted || t.IsCanceled)
{
Request.CreateErrorResponse(HttpStatusCode.InternalServerError, t.Exception);
}
return Request.CreateResponse(HttpStatusCode.OK);
});
return task;
}
標準のマルチパートHTMLフォームを介したファイルのアップロードは完全に機能します。ただし、別の開発者がFlexのFileReferenceクラスによって構築されたマルチパートフォームを介してファイルをアップロードしようとすると、エラーがスローされます。
MIMEマルチパートストリームの予期しない終了。MIMEマルチパートメッセージが完了していません。
問題がWebAPIにあるのかFlexにあるのかわかりません。影響のない関連する修正(ASP.Net Web APIを使用したマルチパートフォームPOST)と、最近の修正( webapiアップロードでの「MIMEマルチパートストリーム。MIMEマルチパートメッセージが完了していません」エラー)を見つけました。2番目のリンクが当てはまる場合、Nugetを介して利用できるWeb APIの現在のリリースに含まれているかどうかを誰かが知っていますか?議論は5月で、Nugetからの最新のリリースは8月だったので、この修正はすでに展開されており、私の問題の根本的な原因ではないと思います。