2

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

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”返回一个无法同步执行的任务。

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[InvalidOperationException:异步操作方法'teststuff'返回一个Task,无法同步执行。]
System.Web.Mvc.Async.TaskAsyncActionDescriptor.Execute(ControllerContext controllerContext, IDictionary 2 parameters) +39 System.Web.Mvc.<> c__DisplayClass13.b__10() +120 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func 1 filters, ActionDescriptor actionDescriptor, IDictionary`2 参数) +307 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,字符串动作名称)+688 NotFoundMvc.ActionInvokerWrapper.InvokeActionWith404Catch(控制器上下文控制器上下文,字符串动作名称)+542 parameters) +125
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary

1 continuation) +637
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList



NotFoundMvc.ActionInvokerWrapper.InvokeAction(ControllerContext controllerContext, String actionName) +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 asyncResult) +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 step, Boolean& 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个?

谢谢

4

2 回答 2

1

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

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

感谢斯蒂芬的建议,它给了我清理网站并重新升级它的想法

于 2013-02-26T00:55:50.993 回答
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.

更改基类后,我的代码很满意并且运行良好。

于 2016-05-06T00:50:39.417 回答