Asp.net mvc 4 异步操作方法返回无法同步执行的任务

Asp.net mvc 4 异步操作方法返回无法同步执行的任务,asp.net-mvc-4,async-await,Asp.net Mvc 4,Async Await,此代码在我的本地计算机上运行良好 public async Task<ActionResult> teststuff() { using (var client = new HttpClient()) { var twitter = await client.GetStringAsync("http://www.twitter.com"); Response.Write(twitter);

此代码在我的本地计算机上运行良好

public async Task<ActionResult> teststuff()
    {

        using (var client = new HttpClient())
        {

            var twitter = await client.GetStringAsync("http://www.twitter.com");
            Response.Write(twitter);
        }

        return View();
    }
public异步任务teststuff()
{
使用(var client=new HttpClient())
{
var twitter=await client.GetStringAsync(“http://www.twitter.com");
回复。写(推特);
}
返回视图();
}
然而,当我上传到服务器时,我得到了错误响应

“/”应用程序中出现服务器错误。 异步操作方法“teststuff”返回一个任务,该任务 无法同步执行。描述:一个未处理的 执行当前web请求期间发生异常。 请查看堆栈跟踪以了解有关错误和错误的更多信息 它起源于代码的地方

异常详细信息:System.InvalidOperationException:异步 操作方法“teststuff”返回无法执行的任务 同步地

源错误:

在执行过程中生成了未处理的异常 当前web请求。关于货物来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常

堆栈跟踪:

[InvalidOperationException:异步操作方法'teststuff' 返回无法同步执行的任务。]
System.Web.Mvc.Async.TaskAsyncActionDescriptor.Execute(ControllerContext controllerContext,IDictionary
2参数)+125
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor ActionDescriptor,IDictionary
2 参数)+39
System.Web.Mvc.c\u DisplayClass13.b\u 10() +120 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter 过滤器,ActionExecutingContext预文本,Func
1 continuation)+637
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext,IList
1过滤器,ActionDescriptor ActionDescriptor, IDictionary`2参数)+307
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,字符串actionName)+688
NotFoundMvc.ActionInvokerRapper.InvokeActionWith404Catch(ControllerContext controllerContext,字符串actionName)+54
NotFoundMvc.ActionInvokerRapper.InvokeAction(ControllerContext controllerContext,字符串actionName)+19
System.Web.Mvc.c__displayClassId.b__19()+40
System.Web.Mvc.Async.c__显示类1.b__0()+15
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+53 System.Web.Mvc.Async.c\uuu DisplayClass4.b\uu 3(IAsyncResult ar)+15
System.Web.Mvc.c_uuudisplayClass8.b_uuu3(IAsyncResult 异步结果)+42
System.Web.Mvc.Async.c\uuu DisplayClass4.b\uu 3(IAsyncResult ar)+15
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606 System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+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个


谢谢

很奇怪,我刚刚删除了网站上的所有文件,然后重新发布了网站,一切正常

我认为这可能是因为我最近将该站点从一个MVC3站点升级到了MVC4,并且目录中的MVC3站点可能还剩下一个奇怪的DLL


感谢Stephen的建议,它给了我清理站点并重新提供站点的想法

在子类化
ControllerActionInvoker
以使用Ninject将依赖项注入MVC属性后,我出现了这个错误。本页介绍了执行此操作的过程:

我的控制器中有一些异步方法,在调用这些异步方法时出现了这个错误。事实证明,我需要的不是子类
ControllerActionInvoker
,而是
System.Web.Mvc.Async.AsyncControllerActionInvoker


更改基类后,我的代码运行得很好。

您有
/configuration/system.web吗/compilation@targetFramework
设置为
4.5
?是的,我刚刚检查,targetFramework设置为4.5。我刚才在使用CastleWindsor for DI of Action筛选器的应用程序上遇到了相同的问题。