此代码在我的本地计算机上正常运行
public async Task<ActionResult> teststuff()
{
using (var client = new HttpClient())
{
var twitter = await client.GetStringAsync("http://www.twitter.com");
Response.Write(twitter);
}
return View();
}
但是,当我上传到服务器时,我收到错误回复
2>'/'应用程序中的服务器错误。异步操作方法'teststuff'返回一个Task 无法同步执行。描述:未处理 在执行当前Web请求期间发生异常。 请查看堆栈跟踪以获取有关错误的更多信息 它起源于代码。
异常详细信息:System.InvalidOperationException:异步 action方法'teststuff'返回一个无法执行的Task 同步。
来源错误:
执行期间生成了未处理的异常 当前的网络请求。有关的来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈追踪:
[InvalidOperationException:异步操作方法'teststuff' 返回一个无法同步执行的任务。] System.Web.Mvc.Async.TaskAsyncActionDescriptor.Execute(ControllerContext controllerContext,IDictionary
2 parameters) +125
2 参数)+39
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
System.Web.Mvc&LT;&GT; c__DisplayClass13.b__10() +120 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter) filter,ActionExecutingContext preContext,Func1 continuation) +637
1个过滤器,ActionDescriptor actionDescriptor, IDictionary`2参数)+307
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,String actionName)+688
NotFoundMvc.ActionInvokerWrapper.InvokeActionWith404Catch(ControllerContext controllerContext,String actionName)+54
NotFoundMvc.ActionInvokerWrapper.InvokeAction(ControllerContext controllerContext,String actionName)+19
System.Web.Mvc。&lt;&gt; c__DisplayClass1d.b__19()+40
System.Web.Mvc.Async。&lt;&gt; c__DisplayClass1.b__0()+15
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+53 System.Web.Mvc.Async&LT;&GT; c__DisplayClass4.b__3(IAsyncResult的 ar)+15
System.Web.Mvc&LT;&GT; c__DisplayClass8.b__3(IAsyncResult的 asyncResult)+42
System.Web.Mvc.Async&LT;&GT; c__DisplayClass4.b__3(IAsyncResult的 ar)+15
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&amp; completedSynchronously)+288----------------------------------------------- ---------------------------------版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.17929
我的服务器上缺少一些东西,但却无法找到它的任何帮助。
我尝试在服务器上重新安装.net framework 4.5,但是没有效果。但是我确实注意到它有两个
Microsoft .NET Framework 4多目标打包和 Microsoft .NET Framework 4.5多目标包
不确定我是否应该删除4个?
由于
答案 0 :(得分:1)
在子类化ControllerActionInvoker
之后,为了使用Ninject将依赖项注入MVC属性,我遇到了这个错误。此页面描述了执行此操作的过程:http://codeclimber.net.nz/archive/2009/02/10/how-to-use-ninject-to-inject-dependencies-into-asp.net-mvc.aspx
我的控制器中有一些异步方法,当调用这些异步方法时出现此错误。事实证明,我不需要继承ControllerActionInvoker
,而是System.Web.Mvc.Async.AsyncControllerActionInvoker
。
更改基类后,我的代码很高兴,运行得很好。