2009-05-14 8 views
2

Web.Config xmlのAppSettingsノードが別のファイルに格納されているASP.Netアプリケーションがあります。Web.Configの設定を別のファイルに保存する場合、IIsresetは常に必要ですか?

だから私のWeb.Configのは、この含まれています。私は私がでキックする変更を強制的にIISRESETをしなければならないそこの設定を変更するたびに

<appSettings file="AppSettings.config" /> 

を言い換えると、このファイル内の私の変化が上がりません。 Web.Configへの変更と同じ方法が検出されました。

Web.Configのように、これらの変更を自動的に有効にする方法を知っている人はいますか?

ありがとうございます!

答えて

3

編集:他の回答にお答えします。 appSettingsのrestartOnExternalChanges = "true"オプションを含むようにmachine.configを変更できます。ただし、外部アプリ設定ファイルのいずれかをタッチすると、すべてのWebアプリケーションが再起動します。 (これは、configSource = "file.name"をfile = "file.name"ではなくconfigSource = "file.name"を使用している場合にのみ有効です)。

これは仕様です。アプリケーションをリセットさせる唯一の方法は手動またはスクリプトを介して。

は、IISを再起動せずにアプリケーションをリセットするスクリプトのためにここを見てとることができます。

http://weblogs.asp.net/jgalloway/archive/2006/06/01/Avoid-IISRESET-in-ASP.NET-applications-_2800_added-bonus_3A00_-ASPRESET_2900_.aspx

+0

これをコードで設定することもできますので、現在のアプリケーションにのみ影響します。http://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.restartonexternalchanges.aspx –

+0

@jellomonkey。ヘルプメイトに感謝します。 machine.configの変更が機能しました。私は、file = "file.name"では動作しなかったので、configSource = "file.name"を使用する必要があるように見えるはずです。 もう一度おねがいします! –

2

メモ帳でweb.configを開きます。それを保存。メモ帳を終了します。

+0

+1:最も簡単な解決策が通常は最高です。 – Joe

+0

入力のおかげで - 私はどこかの設定を探していましたが、 –

+0

@Downvoter:投票を説明するのに気をつけてください、それともあなたは臆病者ですか? –

1

filewatcherサービスを作成して、カスタム設定ファイルを監視することができます。変更されたイベントがサービス内で実行されると、iisrestコマンドが発行されます。

2

をどのようにコードでアプリの設定にアクセスしていますか?私は外部のappsettingsファイルを持っていますが(configSourceの代わりにfileのプロパティを使用します)、値を取得するコードにConfigurationManager.AppSettings("settingname")を使用すると、すぐに変更できます。

これは、何か別の理由で実際にアプリケーションを再起動する必要があり、サーバー上のmachine.configファイルにアクセスできる場合、appSettingsセクションの定義には、RestartOnExternalChangesという属性があります。 true(デフォルトはfalse)に設定し、appSettingsセクションが必要なように振る舞います。

+0

私は彼がどこでコードの変更を行っていると言いましたか分かりません。 –

+0

私は変更を言わなかった - 私はコードを使って値にアクセスすると言った。私たちのほとんどは、コード内の値を使用したいので、appSettingsに物を入れます。上記の方法を使用して値を取得すると、アプリケーションを再起動しなくても、外部のappsettingsに行った変更が表示されます。 – patmortech

+0

すぐに利用可能なASP.NETアプリケーションを再起動せずに?私はこれが可能だとは思わなかった。私は、AppSettingsがAppDomainごとにキャッシュされていると考えました。新しい設定で新しいAppDomainを取得するには、ASP.NETアプリケーションを再起動する必要があります。 –

0

代わりにConfigurationRedirection(IIS 7で導入)を使用する場合は、外部構成ファイル(IIS 7.5以降)の変更をポーリングするようにIISを構成できます。これは、appSettingsセクションだけでなく、.configファイル全体をカバーします。

これにより、Webファーム内のすべてのWebサーバーコンピュータがアクセスできるUNCサーバーに構成設定を格納できます。

2

これは古いスレッドだが、追加するものがあることは分かっている。

あなたが使用している場合:

<appSettings file="AppSettings.config" /> 

web.configファイルに変更が行われたり、再起動が実行されるまで続いて外部ファイルへの変更は使用できません。

しかし、あなたがすることに変更した場合:

<appSettings configSource="AppSettings.config" /> 

これらの設定に加えた変更は、すぐに再起動またはweb.configファイルを変更せずに、あなたのコード内で使用可能です。

私はこれが再現性のあるテストの場合であることを確認しました。

関連する問題