1

各運用 Web サーバーは、個別の Web サイト (ASP.NET Web アプリケーション) 用に独自のキャッシュを保持しています。現在、キャッシュをクリアするには、サーバーにログインして web.config ファイルを「タッチ」します。

特定のWebアプリケーションのキャッシュをリモートでリセットするための安全/安全な方法の例はありますか? 理想的には、「すべてのサーバーで実行されているアプリ X のキャッシュをクリアする」だけでなく、「サーバー Y で実行されているアプリ X のキャッシュをクリアする」とも言えます。

編集/説明:

  • おそらく、アプリケーション自体を介してこれを行うことは実際にはオプションではないことを明確にする必要があります (つまり、アプリケーションへのある種のログイン、キャッシュをクリアする特定のページまたはハンドラーへのサーフ)。このようなことを行うには、ロギングと統計追跡コードを無効化/バイパスするか、統計を台無しにする必要があります。

  • はい、キャッシュは定期的に期限切れになります。私がやりたいのは、通常はデータベースで何かを変更した後 (SQL 2000 を使用しています)、特定のキャッシュをオンデマンドで期限切れにできるようにセットアップすることです。今すぐこれを行うことができますが、サーバー自体にログインする必要があります。

4

3 に答える 3

2

アプリケーションごとに、キャッシュ/アプリケーションデータを強制終了するための小さなcache-dump.aspxスクリプトを作成できます。それをすべてのアプリケーションにコピーし、呼び出しを管理するためのハブスクリプトを記述します。

セキュリティのために、あらゆる種類の認証ルックアップまたはIPチェックを追加できます。

これが実際のアプリダンプの方法です。

Context.Application.Lock()
Context.Session.Abandon()
Context.Application.RemoveAll()
Context.Application.UnLock()
于 2008-09-16T22:17:37.903 に答える
1

便利そうなタッチユーティリティに関する DevXの記事を見つけました。

これをデータベース内のテーブル(レコードを追加すると、touchユーティリティがレコードを見つけて適切なweb.configファイルを更新する)またはWebサービス(呼び出しを行うと、touchユーティリティが呼び出されて更新される)のいずれかと組み合わせてみます。適切なweb.configファイル)

于 2008-09-17T12:30:07.883 に答える
0

これは「エレガント」ではないかもしれませんが、バッチスクリプトを実行するスケジュールされたタスクを設定できます。スクリプトは基本的に、web.config(または再コンパイルを引き起こす他のファイル)に「タッチ」します。

それ以外の場合、アプリケーションキャッシュはN分後に期限切れになるように設定されていませんか?

于 2008-09-16T21:11:11.213 に答える