此代码在我的本地计算机上运行良好
public async Task<ActionResult> teststuff()
{
using (var client = new HttpClient())
{
var twitter = await client.GetStringAsync("http://www.twitter.com");
Response.Write(twitter);
}
return View();
}
但是,当我上传到服务器时,我收到错误响应
“/”应用程序中的服务器错误。
异步操作方法“teststuff”返回一个任务,其中 无法同步执行。 描述:未处理 执行当前 Web 请求期间发生异常。 请查看堆栈跟踪以获取有关错误和的更多信息 它起源于代码的地方。
异常详细信息:System.InvalidOperationException:异步 操作方法“teststuff”返回一个无法执行的任务 同步进行。
来源错误:
执行过程中产生了未处理的异常 当前的网络请求。有关原产地和地点的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈跟踪:
[InvalidOperationException:异步操作方法“teststuff” 返回一个Task,该Task不能同步执行。]
System.Web.Mvc.Async.TaskAsyncActionDescriptor.Execute(ControllerContext 控制器上下文,IDictionary2 参数)+392 parameters) +125
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
System.Web.Mvc.<>c__DisplayClass13.b__10() +120 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter 过滤器,ActionExecutingContext preContext,Func1过滤器,ActionDescriptor actionDescriptor, IDictionary`2个参数)+3071 continuation) +637
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext 控制器上下文,字符串操作名称)+688
NotFoundMvc.ActionInvokerWrapper.InvokeActionWith404Catch(ControllerContext 控制器上下文,字符串操作名称)+54
NotFoundMvc.ActionInvokerWrapper.InvokeAction(ControllerContext 控制器上下文,字符串操作名称)+19
System.Web.Mvc.<>c__DisplayClass1d.b__19() +40
System.Web.Mvc.Async.<>c__DisplayClass1.b__0() +15
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +53 System.Web.Mvc.Async.<>c__DisplayClass4.b__3(IAsyncResult ar) +15
System.Web.Mvc.<>c__DisplayClass8.b__3(IAsyncResult 异步结果)+42
System.Web.Mvc.Async.<>c__DisplayClass4.b__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 个?
谢谢
为了使用 Ninject 将依赖项注入到 MVC 属性中,我在子类化
ControllerActionInvoker
后遇到了这个错误。本页描述了执行此操作的过程:https://codeclimber.net.nz/archive/2009/02/09/how-to-use-ninject-to-inject-dependency-into-aspnet-mvc/
我的控制器中有一些异步方法,当调用这些异步方法时出现此错误。事实证明,我不需要子类化
ControllerActionInvoker
,而是 System.Web.Mvc.Async.AsyncControllerActionInvoker
。
更改基类后,我的代码很满意并且运行得很好。
奇怪的是,我刚刚删除了网站中的所有文件,然后重新发布了该网站,一切正常。
我认为发生这种情况可能是因为我最近将站点从 MVC3 站点升级到 MVC4,并且目录中的 MVC3 站点可能留下了一个奇怪的 DLL。
感谢斯蒂芬的建议,它给了我清理网站并重新启动的想法