2004.12.21

Web.configのappSettingsをカスタマイズする方法

appSettingsセクションにサブファイルを指定することができます。
サブファイルを指定した場合、サブファイルの情報が優先されます。

作成方法:
1.Web.configのappSettingsにfile属性を加えます。
2.file属性に指定した名前でconfigファイルを作成します。
 file属性に指定したconfigファイルには、configurationタグや、
 system.webセクションを記述する必要はありません。
 変更したいキーのみ記述します。

例:
***** Web.config *****
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.web>
    </system.web>
    <appSettings file="user.config">
        <add key="ConnectionString" value="・・・・・" />
        <add key="List_MaxIndex" value="99" />
    </appSettings>
</configuration>

***** user.config *****
<?xml version="1.0" encoding="utf-8" ?>
<appSettings file="user.config">
    <add key="ConnectionString" value="・・・・・" />
</appSettings>

注意:
・VisualSourceSafeでは、Web.configのみ管理し、
 file属性に指定するconfigファイルは必要な人のみ配置するようにします。
 ファイルが存在しない場合は、Web.configに指定した値が使用されます。
・Web.config内の他のセクション(traceセクションなど)は使用できません。
・file属性に指定したconfigファイルを変更してもアプリケーションの
 リスタートは行われません。
・file属性には相対パスが利用できます。

コメント (3)

>・file属性に指定したconfigファイルを変更してもアプリケーションの
> リスタートは行われません。

IISのmmcからWebサイトを停止→開始を行ったのですが、これだけでは変更が反映されませんでした。
以下の方法ではいずれも反映されました。
・VisualStudio.Netでリビルド
・サービスからIIS Adiminを再起動

運用中のシステムをVS.NETでリビルドするわけにもいかないので、IISの再起動となるのでしょうけれど、
これをアプリケーション単位で再起動させられないものでしょうかね?

試しにWeb.configの該当箇所をコメントアウトし、
user.configに書かれているだけの状態にしてみたところ、
読み込まれませんでした。


***** Web.config *****
<appSettings file="user.config">
<!--add key="ConnectionString" value="・・・・・" /-->
<!--add key="List_MaxIndex" value="99" /-->
</appSettings>

***** user.config *****
<appSettings file="user.config">
<add key="ConnectionString" value="・・・・・" />
<add key="List_MaxIndex" value="99" />
</appSettings>

どうやら、まったく同じ項目がないと読み込めないようです。
よって、Web.configには無いままで、user.configだけに項目を追加することはできません。
ご注意ください。

user.configにもさらにfileを指定すると
動作しません。
正しくは以下のとおりです。
ご注意ください。
***** Web.config *****
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
</system.web>
<appSettings file="user.config">
<add key="ConnectionString" value="・・・・・" />
<add key="List_MaxIndex" value="99" />
</appSettings>
</configuration>

***** user.config *****
<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="ConnectionString" value="・・・・・" />
</appSettings>

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
ooya