プログラムでWeb.configファイルを編集する良い方法は何ですか?
System.Xmlを調べましたが、明白な答えが見つかりませんでした。
プログラムでWeb.configファイルを編集する良い方法は何ですか?
System.Xmlを調べましたが、明白な答えが見つかりませんでした。
このフェローは、すべての警告の後も実行したい場合のサンプル コードを示しています。
protected void EditConfigButton(object sender, EventArgs e)
{
Configuration objConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
AppSettingsSection objAppsettings = (AppSettingsSection)objConfig.GetSection("appSettings");
//Edit
if (objAppsettings != null)
{
objAppsettings.Settings["test"].Value = "newvalueFromCode";
objConfig.Save();
}
}
web.config を編集する正当な理由の 1 つは、それを暗号化することです。これがその記事の内容です。
WebConfigurationManager を使用して、特定の構成セクションを読み取ることができます。これにより、ConfigurationSection オブジェクトが返されます。これを使用して、セクション内の ConfigurationElements を読み取り/変更できます。それらを更新したら、ConfigurationSection を保存できます。変更内容でファイルが更新されます。
これを使用して、Application_Start の appSettings と connectionStrings がまだ暗号化されていない場合、それらを自動的に暗号化します。この方法で実際に設定を変更したことはありませんが、変更できるはずです。
更新された構成ファイルを保存すると、ビルド方法によってはアプリがリサイクルされる場合があります。
あなたが何をしているかに応じて、方法はそれぞれの状況で少し異なります. ただし、最も堅牢な方法は、XmlDocument として読み込み、その方法で必要に応じて変更することですが、必要な方法でのみ変更するように注意する必要があります。
理論的には; プログラムで Web 構成ファイルを生成し、簡単にするためのテンプレートを使用することができます。
ただし、サイト内から web.config を編集しようとしている場合。しないことを強くお勧めします。少なくとも; アプリを更新するたびにアプリのリセットをトリガーします。インプロセス セッションを使用している場合、これは特に悪いことです。
アンダースが尋ねたように、あなたは何をしようとしているのですか?
他の人に同意します。webconfig を編集することは可能ですが、連鎖反応があり、危険/リスクが伴います。
アプリケーション固有の値である場合は、アプリケーション固有の構成ファイルにある必要があります
はい、私はジョシュに同意します。以前にこれを試したことがありますが、次の 2 つの悪影響がありました。
現在の DB がダウンした場合にデータベース接続を切り替えるなど、何か問題が発生した場合など、展開後にアプリケーション固有の設定を変更したいことがよくあります。さらに、プログラムで変更したい独自の XML ベースの構成ファイルを作成したい場合もあります。
XML Webpad を試す - http://xmlwebpad.codeplex.com/
編集 XML ファイルを表示するためのフレームワークです。Web アプリと統合すると、web.config の編集は、web.config ページを表示し、必要な変更を行い、保存ボタンを押すのと同じくらい簡単になります (すべてアプリケーション内から)。