C# HyperV环境中AsyncController上的TimeoutException

C# HyperV环境中AsyncController上的TimeoutException,c#,asp.net-mvc-2,asynchronous,C#,Asp.net Mvc 2,Asynchronous,在我们的Beta HyperV环境中,MVC AsyncController上出现了TimeoutException。在本地调试时一切正常,但当我们部署到预生产环境时,会出现以下错误: [TimeoutException:操作已超时。] System.Web.Mvc.Async.WrappedAsyncResult`1.End()+129 System.Web.Mvc.Async.c_DisplayClass39.b_38(IAsyncResult asyncResult)+23 System.

在我们的Beta HyperV环境中,MVC AsyncController上出现了TimeoutException。在本地调试时一切正常,但当我们部署到预生产环境时,会出现以下错误:

[TimeoutException:操作已超时。] System.Web.Mvc.Async.WrappedAsyncResult`1.End()+129 System.Web.Mvc.Async.c_DisplayClass39.b_38(IAsyncResult asyncResult)+23 System.Web.Mvc.Async.c_DisplayClass33.b_2d()+125 System.Web.Mvc.Async.c_DisplayClass49.b_43()+452 System.Web.Mvc.Async.c_DisplayClass49.b_43()+452 System.Web.Mvc.Async.c_DisplayClass49.b_43()+452 System.Web.Mvc.Async.c_DisplayClass31.b_30(IAsyncResult asyncResult)+15 System.Web.Mvc.Async.c_DisplayClass24.b_1a()+31 System.Web.Mvc.Async.c_DisplayClass1f.b_1c(IAsyncResult asyncResult)+230 System.Web.Mvc.c_DisplayClass17.b_12(IAsyncResult asyncResult)+28 System.Web.Mvc.Async.c_DisplayClass4.b_3(IAsyncResult ar)+20 System.Web.Mvc.AsyncController.EndExecuteCore(IAsyncResult asyncResult)+53 System.Web.Mvc.Async.c_DisplayClass4.b_3(IAsyncResult ar)+20 System.Web.Mvc.c_DisplayClass8.b_3(IAsyncResult asyncResult)+42 System.Web.Mvc.Async.c_DisplayClass4.b_3(IAsyncResult ar)+20 System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar)+136


这个错误的可能原因是什么

这是异步操作花费的时间超过配置的AsyncTimeout值(默认值为45秒)时引发的异常。通过使用AsyncTimeout属性修饰ActionMethod,可以显式控制该值。例如,要将异步超时设置为整分钟,请执行以下操作:

[AsyncTimeout(60000)]
public void IndexAsync()
{
   ...
}
您也可以使用NoAsyncTimeout属性,但是您很容易受到异步操作的影响,这些操作永远不会完成,并且会使您的web请求处于不确定状态

[AsyncTimeout(60000)]
public void IndexAsync()
{
   ...
}