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 フィルター、ActionExecutingContext preContext、Func 1 フィルター、ActionDescriptor actionDescriptor、IDictionary`2 パラメーター) +307 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext、 String actionName) +688 NotFoundMvc.ActionInvokerWrapper.InvokeActionWith404Catch(ControllerContext controllerContext, String actionName) +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

奇妙なことに、Web サイト内のすべてのファイルを削除してからサイトを再公開したところ、すべて正常に動作しました。

これは、最近サイトを MVC3 サイトから MVC4 にアップグレードしたため、ディレクトリに MVC3 サイトの奇妙な DLL が残っていたために発生した可能性があると思います。

あなたの提案をしてくれたスティーブンに感謝します

于 2013-02-26T00:55:50.993 に答える
1

ControllerActionInvokerNinjectを使用してMVC属性に依存関係を注入するためにサブクラス化した後、このエラーが発生しました。このページでは、これを行うプロセスについて説明しています

コントローラーにいくつかの非同期メソッドがあり、これらの非同期メソッドが呼び出されたときにこのエラーが発生していました。をサブクラス化するControllerActionInvokerのではなく、System.Web.Mvc.Async.AsyncControllerActionInvoker.

基本クラスを変更した後、私のコードは問題なく実行されました。

于 2016-05-06T00:50:39.417 に答える