私は、特定のXML構成ファイルがWebファーム内の複数のサーバー間で同期されたままになるようにするための最善の方法に苦労してきました。アプリケーションに存在する他の構成ファイルのいくつかについて心配しているのと同じくらい、私は必ずしもWeb.Configについて心配しているわけではありません。
たとえば、キャッシュポリシーを外部XMLファイルに保存します。このファイルには独自のスキーマがあり、まもなく値を維持するための独自のツールが追加されます。変更が適用されたら、ファーム全体に移行する必要があります。
私がこれまでに検討したいくつかのシナリオ:
- RoboCopy、レプリケーション、または同等のもの。これには、ファームの特定のノードでのみ作業を行う必要があります。(アプリケーションにプッシュします。)
- 構成サーバー。すべての外部構成とそのツールは、IISの物理インスタンスに保存されます。アプリケーションは、アプリケーションの起動時にこれらの構成ファイルを取得し、定期的に変更をポーリングします。(アプリケーションのポーリング。)
- チームビルド。ツールを社内でホストし、ファイルを展開するためのビルド後のプロセスを設定できます。(アプリケーションのポーリング。)
- データベースストレージ。アプリケーションは、データベースを読み取ってポーリングし、構成を行うことができます。(アプリケーションのポーリング。)
これらのシナリオにはすべて、長所と短所があります。アプリケーションに変更をポーリングさせるのが最もクリーンなアプローチかもしれないと思いますが、最善の解決策が何であるかはわかりません。それでも、問題は、これが達成されるとあなたが最もよく考える方法はどれですか?