2011-01-30 10 views
0

(a)そのサイトインスタンスによって管理され、(b)Web.configファイルを永続的に破棄できる特定のサイトインスタンスに関するいくつかのメタ情報を保存したいとします。 サイトは複数の環境(開発、テスト、ステージング、およびプロダクション)で動作し、各環境でこのメタデータの値が異なる可能性があります。 注:すべての環境でIIS 7.0以上が稼働していますコード内のルートWeb.configを変更する

ルートWeb.configはWebサイト外にあるため、非常に魅力的です。したがって、メタデータを維持しながらファイルとデータベースの両方を変更することができます。 Webサイトに保存されているWeb.configのappSettingsを変更する方法を見てきましたが、ルートWeb.config(特に適切な指示の範囲内)でappSettingsを同様に変更することは可能ですか?

この問題に近づく他の提案がある場合は、私はそれらを聞いて非常にうれしいです。ありがとうございました!

答えて

0

私の仮定が間違っているとweb.configファイルはできません場合は、アプリケーションがリサイクルします、ランタイム修正のweb.config、app.configを

のような設定ファイルの、おそらく他のいくつかのフォームを使用していないだろうアプリケーションの起動後に編集した後、WebConfigurationManagerを使用してファイルセクションにアクセスすることができます

+0

ありがとうございます。私は、web.configのルートを参照する仮想パスの引数としてnullを使用する必要があります私は検索を続けたもう少し小さな作品がありました。 WebConfigurationManager.OpenWebConfiguration(null) –

0

はい、web.config内のアプリケーション設定を変更できます。System.Web.Configuration名前空間のWebConfigurationManagerクラスを使用して、Configurationオブジェクトを作成します。このオブジェクトを使用して、web.configファイルの変更を読み書きすることができます。

次に、必要に応じて読むことができる独自の「キー」または属性を作成できます。

あなたの属性が表すものに応じて、またはそれらのサーバからの複数の環境によって取得する必要がある場合は、machine.configファイル内で変更を行うことも考えられます。複数の環境(サーバーから複数のWebアプリケーションをホストしている場合)によって取得されます。これにより、複数のweb.configファイルを変更したり、特定の状況で複数の設定ファイルを比較したりして、ストレージまたはメタデータを1つの場所に保存する時間を節約できます。