0

MVC Webアプリケーションからwebapi service (via REST)を呼び出す必要があります。webapiサービスを非同期で呼び出す方法

コールはasynchronousの形式で発生する必要があり、火災と電話を忘れる必要があります。この場合の最善のアプローチについてのあなたの意見を募集しました。 MVC非同期コントローラーを使用してタスク並列ライブラリ(TPL)

    1. 使用タスク。

    参考資料とともに他の方法についてもご意見をお寄せください。

  • +0

    [ASP.NET MVC 4アプリケーション呼び出しリモートWebAPI]の可能な複製(http://stackoverflow.com/questions/13200381/asp-net-mvc-4-application-calling-remote-webapi) – Igor

    答えて

    0

    まず、REST API WebサーバーとしてOWIN Katana(https://katanaproject.codeplex.com/)を使用することをおすすめします。スレッドの代わりにエンジンのタスクをネイティブにサポートしています。

    非同期Webメソッドに関しては、async/awaitの使用をお勧めします。しかし、1つのWebメソッドで複数の待機可能なリクエスト(サードパーティのWebサービスまたはデータベースへのリクエスト)を行っている場合にのみ、それらを使用する。

    0

    火災ことと

    を呼び出し忘れるべきでよろしいですか?時間の99%、ASP.NETでの火災と忘れは間違いです。明確にするために、火災と忘れの意味:

    1. 発信者にエラーを通知することはできません。
    2. webapiサービスコールが中止されることがあります。

    また、ほとんど決してを取得します。 MVCレイヤからではなく、クライアントから火をつけて忘れるのはなぜですか?

    しかし、あなたは本当にWEBAPIコールHostingEnvironment.QueueBackgroundWorkItemなど、その後することができますfollow one of the techniques on my blog、忘れ火災と-でなければならないことを主張した場合。

    +0

    完了しましたそれ。 「非同期」メソッドを呼び出すと、それを待たずにすべての時間が実行されないことがあります。デベロッパーマシンではおそらく99%のようにうまく動作しますが、ストレスのかかるサーバーでは、おそらく25%以上は実行されません。 – Bernard

    +0

    Stephenのブログをよく読んで賛否両論を理解してください。私たちはこれを難しい方法で学びました。スティーブンスのバックグラウンドは、私たちの事例には完璧でした。私はあなたがこの答えを受け入れるべきだと思います。 – Bernard

    関連する問題