2

Web.Config xml の AppSettings ノードが別のファイルに格納されている ASP.Net アプリがあります。

したがって、私の Web.Config には次のものが含まれています。

<appSettings file="AppSettings.config" />

そこで設定を変更するたびに、iisreset を実行して強制的に変更を有効にする必要があります。つまり、このファイルの変更は、Web.Config の変更と同じようには検出されません。

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

ありがとう!

4

6 に答える 6

3

編集:他の回答に応じて。machine.config を変更して、appSettings の restartOnExternalChanges="true" オプションを含めることができます。ただし、これにより、外部アプリ設定ファイルのいずれかに触れると、すべての Web アプリケーションが再起動されます。(また、これは 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

于 2009-05-14T16:13:03.490 に答える
3

これが古いスレッドであることは知っていますが、追加するものがあります。

使用する場合:

<appSettings file="AppSettings.config" />

その後、外部ファイルへの変更は、web.config への変更が行われるか、再起動が実行されるまで利用できません。

しかし、それを次のように変更すると:

<appSettings configSource="AppSettings.config" />

これらの設定への変更は、再起動や web.config の変更なしで、すぐにコードで利用できます。

これが再現可能なテストの場合であることを確認しました。

于 2012-01-25T17:16:05.187 に答える
2

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

そうは言っても、何らかの理由でアプリの再起動が本当に必要で、サーバー上の machine.config ファイルにアクセスできる場合は、appSettings セクションの定義RestartOnExternalChangesに true に設定できるという名前の属性があります。 (デフォルトは false) そして appSettings セクションはあなたが望むように動作すると思います.

于 2009-05-14T16:42:35.480 に答える
2

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

于 2009-05-14T16:09:14.327 に答える
1

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

于 2009-05-14T16:11:41.030 に答える
0

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

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

于 2011-11-21T17:42:06.770 に答える