- PR -

Web.configファイルでappSettingsの分離

1
投稿者投稿内容
常連さん
会議室デビュー日: 2004/10/27
投稿数: 21
投稿日時: 2005-03-09 22:14
現在ASP.NETでシステムの開発を行っています。

アプリケーション内で使用する設定値と画面に表示するメッセージの定義をweb.configのappSettingsで管理しているのですが、これを3つのconfigファイルに分割できない物か悩んでいます。
まず大本になるweb.config。
設定値のみが記述されているExternalValue.config。
そしてメッセージが記述されているSystemMessages.config。

大本となるweb.configにあるappSettingsのfile属性を使用してExternalValue.configかSystemMessages.configのどちらかを指定することは出来たのですが、両方を設定することが出来ませんでした。
WindowsまたはConsoleの場合はapp.configに
<configuration>
<appSettings file="ExternalValue.config" />
<appSettings file="SystemMessages.config" />

<appSettings>
<add key="mainValue" value="HogeHoge" />
</appSettings>
</configuration>
と記述すると全てのconfigの値が取得できましたが、同じような記述をweb.configにするとデバックモードでアプリケーションがスタートすらしなくなりました。

以上、何か方法を知ってらっしゃる方がいらっしゃいましたらご教授お願いします。

環境
OS :Windows2000 Professional
IDE:Visual Studio .NET 2003 Enetrprise Architect
おりば〜ず
会議室デビュー日: 2003/03/08
投稿数: 7
投稿日時: 2005-03-10 10:30
こんにちは。

デバッグ無しで実行すると、以下のようなエラーメッセージが出ます。

「セクションは 1 つの構成ファイルにつき 1 回のみ表示できます。」

ということは、ASP.NETの場合はappSettingsはひとつしか書けないということかなと。
WindowsアプリケーションとコンソールアプリケーションでappSettingsをふたつ書けちゃうことは知りませんでした。
ジョン吉
常連さん
会議室デビュー日: 2005/02/25
投稿数: 33
投稿日時: 2005-03-10 11:13
既存のWeb.Configの内容はそのままにして、

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
     
     既存の内容

</system.web>

ここに追加してみてください
<appSettings>
<add key="john" value="ayda"></add>
</appSettings>

</configuration>


これで私は動いています
常連さん
会議室デビュー日: 2004/10/27
投稿数: 21
投稿日時: 2005-03-10 11:38
おりば〜ずさん、ジョン吉さん、情報ありがとうございました。

To おりば〜ずさん
「デバックモードで起動しないなら何をやっても動かない」と諦めてデバック無しで起動させていませんでした。
メッセージの内容を見ると確かにセクション(appSettingsもセクションですよね?)は1回しか書けないと言うことですね。
でもappSettingsのfile属性を使った場合はfile属性に指定する〜.configの内容もappSettingsになっていますが、これは問題なく動作・取得出来ています。
file属性を使った場合は同一のappSettingsセクションとして見られてるのかな?
そうするとfile属性で複数のファイルを指定できれば良いのですが、指定方法が分かりません。
単純に

<appSettings file="SystemMessages.config;ExternalValue.config">

とセミコロンで区切っても駄目でした。
他に指定方法があるのでしょうか?
でもfileって単数形ですし。(そういう問題じゃないのかな?(汗))
今日はこの線で調べてみます。

To ジョン吉さん
「既存のweb.config」とはデフォルトの(VSが作った)configでしょうか?
その場合、切り分けたいconfigファイルの指定はどちらで行えばよいのでしょうか?

「既存のweb.config」が私の提示した物でしたら、なぜ動くのでしょう?(汗
でも動いているのでしたら、複数指定が出来る方法があると言うことが分かりますので、それはうれしい前進です。
ジョン吉
常連さん
会議室デビュー日: 2005/02/25
投稿数: 33
投稿日時: 2005-03-11 14:05
怜様

すいません。とんだ大ボケをかましてしまいました。

ファイルそのものを切り替えたいのですよね。
その検証はしてなかったです。
本当に申し訳ないです。
1

スキルアップ/キャリアアップ(JOB@IT)