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

本文关键字:异步操作 挂起 一个 存在 | 更新日期: 2023-09-27 18:33:45

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

System.IO.IOException:读取 MIME 多部分正文部分时出错。 ---> System.InvalidOperationException: 存在挂起的异步 操作,并且只能挂起一个异步操作 同时。 在 System.Web.Hosting.IIS7WorkerRequest.BeginRead(Byte[] buffer, 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);

错误命中以 await 开头的代码的最后一行。

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

需要添加以下代码行。

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);