C# 存在挂起的异步操作,并且只能同时挂起一个异步操作

C# 存在挂起的异步操作,并且只能同时挂起一个异步操作,c#,multithreading,asynchronous,asp.net-web-api2,C#,Multithreading,Asynchronous,Asp.net Web Api2,当在我的开发机器上运行这个时,没有问题,效果很好。当部署到我的服务器时,我总是会收到错误 System.IO.IOException:读取MIME多部分正文部分时出错。--> System.InvalidOperationException:存在挂起的异步 操作,并且只能挂起一个异步操作 同时在 System.Web.Hosting.IIS7WorkerRequest.BeginRead(字节[]缓冲区,Int32 偏移量、Int32计数、异步回调、对象状态) 我正在尝试上载图像。当我在我的本地

当在我的开发机器上运行这个时,没有问题,效果很好。当部署到我的服务器时,我总是会收到错误

System.IO.IOException:读取MIME多部分正文部分时出错。--> System.InvalidOperationException:存在挂起的异步 操作,并且只能挂起一个异步操作 同时在 System.Web.Hosting.IIS7WorkerRequest.BeginRead(字节[]缓冲区,Int32 偏移量、Int32计数、异步回调、对象状态)

我正在尝试上载图像。当我在我的本地机器上运行时,没有错误,并且文件确实被上传

        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);
public异步任务PostFile(int TaskID)
{
//检查请求是否包含多部分/表单数据。
如果(!Request.Content.IsMimeMultipartContent())
{
抛出新的HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
尝试
{
StringBuilder sb=new StringBuilder();//保存响应正文
string root=HttpContext.Current.Server.MapPath(“~/App_Data”);
var provider=新的MultipartFormDataStreamProvider(根);
////读取表单数据并返回异步任务。
wait Request.Content.ReadAsMultipartAsync(提供程序);

错误会出现在以wait开头的代码的最后一行。

需要添加以下代码行

Request.Content.LoadIntoBufferAsync().Wait()

这是在出错的行之前添加的

现在看起来是这样的

            var provider = new MultipartFormDataStreamProvider(root);

            Request.Content.LoadIntoBufferAsync().Wait();

            //// Read the form data and return an async task. 
            await Request.Content.ReadAsMultipartAsync(provider);

欢迎来到StackOverflow!请看,其中的共识是“不,他们不应该”…请:修改你的格式,修改问题的标题!谢谢你的指导。现在怎么样?有没有可能在第一次读取完成之前第二次调用了
PostFile
?你应该在那里设置一个断点并检查一下。@davidkaufman好多了!@JimMischel我正在回发一次。我已经完成了当我把它放在我的Azure服务器上时,就出现了错误。谢谢。