私は大規模なアプリケーション全体のモジュールであるASP.NET MVC Webアプリケーション(C#)を扱っています(主にデスクトップ/ Winサービスベース - VB.NET)。現在のところ、アプリケーションは独自のアプリケーション(MVC、VB.NETを使用している)であるWebサービス(APIとして提供)へのHTTP呼び出しを行います。おそらく私はそれをどのように設計するのだろうか、それは私が継承したものです。MVC WebアプリケーションとAPI Webアプリケーションを同じプールで実行できますか?
私の問題は次のとおりです。ローカルIISでMVCアプリケーションをホストし、IIS ExpressでAPIプロジェクトを実行すると、すべて正常です。 2つのプロジェクトを分割して、ローカルIISの別々のアプリケーションプールで実行すると、すべてがうまくいきます。しかし、IISで同じプールから両方のアプリケーションを実行すると、多くの問題が発生します。つまり、私がに電話をかけたときのタイムアウトHttpClient.GetAsync(url) - 特にこのページを9回呼び出して、IDに基づいてさまざまなイメージを動的に取得するページ(各呼び出しはMVCアプリケーションに呼び出され、 API)。一部の通話は通話を行い、ほとんどの通話は通話しません。
キャンセルされたタスク(タイムアウト= 100s)に関する例外ですが、アクションには数分の1秒が必要なためタイムアウトする必要はありません。実行は、HTTPクライアントがこれ以上接続を提供しなくなった場合や、HTTPが要求を送信するのを待っている場合など、失敗した場合にAPI側の関数に実行されることはありません。
私はそれを非同期化しようとしていますが、HttpClientを静的にしようとしましたが、喜びはありませんでした。これは単純に行われてはならないことですか?2つのアプリケーションがアプリケーションプールを共有できるようにしますか?もしそうなら、私はそれで生きることができます。しかし、より効率的に処理できることがあれば、それは非常に便利です。これに関する情報やリソースは非常に高く評価されます。 Ta!