14

プログラムでWeb.configファイルを編集する良い方法は何ですか?

System.Xmlを調べましたが、明白な答えが見つかりませんでした。

4

7 に答える 7

14

このフェローは、すべての警告の後も実行したい場合のサンプル コードを示しています。

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 つは、それを暗号化することです。これがその記事の内容です。

于 2008-11-06T21:22:59.290 に答える
4

WebConfigurationManager を使用して、特定の構成セクションを読み取ることができます。これにより、ConfigurationSection オブジェクトが返されます。これを使用して、セクション内の ConfigurationElements を読み取り/変更できます。それらを更新したら、ConfigurationSection を保存できます。変更内容でファイルが更新されます。

これを使用して、Application_Start の appSettings と connectionStrings がまだ暗号化されていない場合、それらを自動的に暗号化します。この方法で実際に設定を変更したことはありませんが、変更できるはずです。

更新された構成ファイルを保存すると、ビルド方法によってはアプリがリサイクルされる場合があります。

于 2008-11-06T21:17:23.140 に答える
2

あなたが何をしているかに応じて、方法はそれぞれの状況で少し異なります. ただし、最も堅牢な方法は、XmlDocument として読み込み、その方法で必要に応じて変更することですが、必要な方法でのみ変更するように注意する必要があります。

于 2008-11-06T21:13:13.490 に答える
2

理論的には; プログラムで Web 構成ファイルを生成し、簡単にするためのテンプレートを使用することができます。

ただし、サイト内から web.config を編集しようとしている場合。しないことを強くお勧めします。少なくとも; アプリを更新するたびにアプリのリセットをトリガーします。インプロセス セッションを使用している場合、これは特に悪いことです。

アンダースが尋ねたように、あなたは何をしようとしているのですか?

于 2008-11-06T21:17:39.113 に答える
1

他の人に同意します。webconfig を編集することは可能ですが、連鎖反応があり、危険/リスクが伴います。

アプリケーション固有の値である場合は、アプリケーション固有の構成ファイルにある必要があります

于 2008-11-20T22:41:03.303 に答える
1

はい、私はジョシュに同意します。以前にこれを試したことがありますが、次の 2 つの悪影響がありました。

  1. ASP.NET が web.config とすべての関連リソースを読み込んでいるため、ポストバック後に現在のページの読み込みが遅い
  2. ロード サイクルの早い段階で web.config を変更すると (global.asax イベントなど)、サイトがロードされないか、予期しない方法で失敗する可能性があります。
于 2008-11-06T21:17:35.977 に答える
1

現在の DB がダウンした場合にデータベース接続を切り替えるなど、何か問題が発生した場合など、展開後にアプリケーション固有の設定を変更したいことがよくあります。さらに、プログラムで変更したい独自の XML ベースの構成ファイルを作成したい場合もあります。

XML Webpad を試す - http://xmlwebpad.codeplex.com/

編集 XML ファイルを表示するためのフレームワークです。Web アプリと統合すると、web.config の編集は、web.config ページを表示し、必要な変更を行い、保存ボタンを押すのと同じくらい簡単になります (すべてアプリケーション内から)。

于 2010-07-04T02:48:40.227 に答える