私は基本的な RESTful サービスを作成しており、このタスクには ASP.NET MVC 3 を使用することにしました。私のアプリケーションは、ユーザーごとにサーバーへの永続的な接続を維持する責任があります (今のところ)。静的/共有状態 (永続的な接続など) を登録する場所であると想定していましたがApplication_Start
、Unity.MVC3 のドキュメントを読んだ後、各要求/応答サイクルが (Application_Start を呼び出して) サービスの作成をトリガーするようです。
私が参照するドキュメントには次のように書かれています:
リクエストごとに、1 つの UpperCaseService、1 つの LowerCaseService、および 1 つの ExampleContext が、Unity を介して DependencyResolver によってインスタンス化されます。リクエストの最後に、ExampleContext は自動的に破棄されます
他のドキュメントを読んだ後、および私がすでに想定していたことから、Application_Start は、生成された AppDomain ごとに呼び出されます (これは、サーバー上にあるコアの数に近いと想定されます)。
では、サーバーへの一連の永続的な接続を維持し、要求/応答フェーズを生き延び、可能であれば、IIS サーバーが作成したすべての AppDomain 間で共有する効果的な方法は何でしょうか?
この Web サービスは、別の Web サイトによってのみ使用されることに言及しておくと役立つかもしれません。これは本質的には認証プロキシ サーバーですが、将来的にはさらに多くのことを行う予定です。したがって、将来のリクエストが必要になり、再認証はオプションではないため、レスポンスをキャッシュすることはできません。