在我的开发机器上运行时没有任何问题,效果很好。当部署到我的服务器时,我总是收到错误。
System.IO.IOException:读取MIME多部分正文部分时出错。 ---> System.InvalidOperationException:存在挂起的异步 操作,只有一个异步操作可以挂起 同时。在 System.Web.Hosting.IIS7WorkerRequest.BeginRead(Byte [] buffer,Int32 offset,Int32计数,AsyncCallback回调,对象状态)
我正在尝试上传图片。当我在本地计算机上运行它时没有错误,文件会上传。
public async Task<HttpResponseMessage> PostFile(int TaskID)
{
// Check if the request contains multipart/form-data.
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
try
{
StringBuilder sb = new StringBuilder(); // Holds the response body
string root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
//// Read the form data and return an async task.
await Request.Content.ReadAsMultipartAsync(provider);
错误命中以等待开头的代码的最后一行。
答案 0 :(得分:1)
需要添加以下代码行。
Request.Content.LoadIntoBufferAsync()等待();
这是在错误输出的行之前添加的。
所以它现在看起来像这样。
var provider = new MultipartFormDataStreamProvider(root);
Request.Content.LoadIntoBufferAsync().Wait();
//// Read the form data and return an async task.
await Request.Content.ReadAsMultipartAsync(provider);