2006年10月24日

<configSections> 要素は、<configuration> 要素の最初に書く

  
MSDNフォーラムの質問で思い出した以前やった失敗。

<configSections>
<sectionGroup name ="myApp.settings">
<section name="mySection1"
type="Gushwell.MyAppSection, MyAppSectionLib"/>
</sectionGroup>
</configSections>

のような記述を、App.Configに書いたのだけれど、

「構成システムを初期化できませんでした。」

というエラーがでてしまう。しばらくこのエラー原因がわからずに時間を使ってしまいました。
いろいろ、調べて、 要素は、 要素の最初に書かないといけないことがわかりました。

でも、例外のスナップショットのInnerException を見ていれば、もっと早く解決できた問題でした。

InnerExceptionのMessageプロパティには、ちゃんと以下のメッセージが設定されていました。

"config ファイルにつき 1 つの 要素のみが許可されます。要素が存在する場合、ルート 要素の最初の子でなければなりません。

教訓:
例外が出たときは、必ず、InnerExceptionの内容を確認しよう。


この記事へのコメント
app.configの記述で<configSections>が最初になく、かつ2つあったため、XmlSerializerをnewした瞬間に、configurationErrorExceptionがあがり、困っておりました。

XmlSerializerでapp.configを読みにいくんですかね!?
ここの記述のおかげで解決しました。
本当にありがとうございます。感謝です。
Posted by TM at 2016年11月30日 02:40
お役に立てて何よりです。

現象から判断すると、XmlSerializerでapp.configを読みにいくようですね。シリアライザの動作を変更するconfigオプションがあるみたいです。
Posted by Gushwell at 2016年11月30日 14:38
 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/50619086