【发布时间】:2014-12-09 14:15:38
【问题描述】:
在我的开发机器上运行它时没有问题,效果很好。部署到我的服务器时,我总是会收到错误消息。
System.IO.IOException:读取 MIME 多部分正文部分时出错。 ---> System.InvalidOperationException:有一个未决的异步 操作,并且只能挂起一个异步操作 同时。在 System.Web.Hosting.IIS7WorkerRequest.BeginRead(字节 [] 缓冲区,Int32 偏移量、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);
错误出现在以 await 开头的代码的最后一行。
【问题讨论】:
-
欢迎来到 StackOverflow!请参阅"Should questions include “tags” in their titles?",其中的共识是“不,他们不应该”......请:修改您的格式,修改问题的标题!
-
感谢您的指导。现在怎么样了?
-
是否有可能在第一次读取完成之前第二次调用
PostFile?您应该在那里放置一个断点并检查。 -
@DavidKauffman 好多了!
-
@JimMischel 我打电话给回发一次。我已经在本地对其进行了测试并且运行良好,当我将它放在我的 Azure 服务器上时,就会出现错误。谢谢。
标签: c# multithreading asynchronous asp.net-web-api2