リモートデータベースでクエリが非常に遅いaspnetWebサイトがあります。この問題に対処するために、Application_Startでキャッシュを使用します。
HttpRuntime.Cache["Folders"] = (from f in db.Folders select f).ToList();
コントローラーで
var folderList = (List<Folder>)HttpRuntime.Cache["Folders"];
Webサイトを最初にロードするのにかなりの時間がかかりますが、起動すると高速になります。また、IISの新しいserverAutoStart = "true"機能を使用して、キャッシュがロードされた状態でWebサイトが常に実行されているようにします。アプリケーションプールを再起動した場合でも、IISは新しいW3wpプロセスでWebサイトを読み込み、新しいインスタンスが読み込まれたときにプロセスを切り替えます。ダウンタイムが発生しないか、起動が遅くなります。
しかし、コントローラーのアクションが発生したときにキャッシュをリロードしたいと思います。それで、リロード中にアクションをトリガーしたすべてのWebサイトまたはセッションをブロックせずに非同期でリロードすることは可能ですか?また、操作中も現在のCache["Folders"]が機能するようにしたいと思います。