1

私はasp.net mvc3を使用しています。私たちのアプリは HttpRuntime.Cache を多用して、Web サーバーのメモリにデータを保存し、データベースの呼び出しを減らします。

私の問題は、アプリをローカルで実行するたびに (Visual Studio で F5 キーを押す)、キャッシュがクリアされたように見え、データベースからすべてのデータが完全にリロードされることです。つまり、一度実行し、データベースからデータを取得してから停止します。数秒後に再度実行すると、キャッシュが無効になったように見え、データベース呼び出しが再び発生します。私のタイムアウトはずっと先なので、ここで何が起こっているのかわかりません。

VSでF5を押すたびにではなく、キャッシュが本当に空のときにのみデータを取得したいのです。ローカルで実行するたびにキャッシュをクリアする設定をオフにする方法はありますか?

ありがとう!

4

3 に答える 3

2

コンパイル後もキャッシュを保持したい場合は、AppFabricmemcachedなどの他のキャッシュ フレームワークを使用して、キャッシュをプロセスの外に出すことをお勧めします。これらのフレームワークは、キャッシュをプロセス外に格納する分散キャッシュを使用するため、コンパイルするたびにキャッシュが無効になることを回避できます。

于 2012-10-29T02:13:48.317 に答える
2

デバッグを停止するたびに、キャッシュが保存されているアプリ ドメインが強制終了されます。アプリを再コンパイルして新しいアプリを開始するには、新しい AppDomain を作成する必要があるため、これについてできることは何もありません。

于 2012-10-29T01:50:55.380 に答える
1

これを防ぐ方法はありません。VS でデバッガーを停止し、デバッガーを再度アタッチすると、ワーカー プロセスがリサイクルされます。プロセスが新しく開始されると、ワーカー プロセスにキャッシュされたものはすべてフラッシュされます。

于 2012-10-29T01:50:41.977 に答える