要求に応じてIISワーカープロセスをターゲットにする
-
03-07-2019 - |
質問
OK、奇妙な設定、奇妙な質問。 asp.net-2.0 / iis-6で実行される、SaaSアプリ用のクライアントおよび管理Webアプリケーションがあります。管理アプリケーションは、クライアントアプリケーションに表示されるオプションを変更できます。これらのオプションが管理者に保存されると、管理者からクライアントのWebサービスを呼び出して、その特定のアカウントのオプションのキャッシュをフラッシュします。
最近、クライアントアプリケーションに> 1ワーカープロセスの提供を開始しました。これにより、現在実行中のワーカープロセスの1つでのみオプションのキャッシュがクリアされます。
だから、明らかにこの問題を修正する他の手段はありますが(入力を歓迎します)、私の質問は次のとおりです: Webリクエストを介して各ワーカープロセスを対象とする方法はありますか?
解決
この答えについてここでいくつかの仮定をしています...
-
クライアントアプリが.NETキャッシングクラスの1つを使用してアプリケーションのオプションを保存していると思いますか?
-
「flush」と言うとき、設定ファイルまたはdbテーブルにフラッシュバックするということですか?
キャッシュオブジェクトとデータはプロセス間で共有されないため、他のワーカープロセスで実行されているコードにオプションをキャッシュに再読み込みするか、プロセスを強制的に再起動する必要があることを知らせるメカニズムが必要です(これは厳密には便利ではなく、望ましくない可能性が高い)。
オプション設定ファイルまたはDBテーブルを監視するために変更するクライアントソースにアクセスできない場合(たとえば、SqlCacheDependencyを使用して)、この動作にちょっとこだわっていると思います。
他のヒント
キャッシュにより、管理者とクライアントにフルアクセスできます。つまり、.netのCacheオブジェクトです。フラッシュとは、Cacheオブジェクトからアイテムを削除することを意味します。
両方のワーカープロセスがキャッシュデータを共有しないことは承知しています。それは私の難問のようなものです)
システムは、入ってくるすべての新しいセッションでsqlをヒットする必要をなくす方法です。したがって、各ワーカープロセスにキャッシュをクリアする必要があることを伝えることができるソリューションを見つけようとしています。 o SQLの関与。