天天看點

将不确定變為确定~.config檔案,配置系統未能初始化

在.config檔案中,定義了一些節點,可能是connectionStrings,appSettings,configSections之後進行讀取配置節點的資訊,結果出現了異常,配置系統未能初始化

非常奇怪的問題,在網上找了一節文章,終于找到了答案,還是自己書寫的問題,在MSDN上說的很清楚,你的configSections必須位于configuration節點的第一個元素,你不能将connectionStrings寫在configSections上面

出錯的代碼:

<?xml version="1.0" encoding="utf-8"?>
<configuration>      
"WebConfigSection" type="MediaActionServer.WebConfigSection, MediaActionServer"/>
  </configSections>      
<connectionStrings> <add name="backgroundEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\sqlexpress;Initial Catalog=background;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" /> </connectionStrings> <WebConfigSection WebName="占占網站" DoMain="www.zhanzhan.com" /> <appSettings> <add key="site" value="www.zzl.com"/> </appSettings> </configuration>      

正确的代碼:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="WebConfigSection" type="MediaActionServer.WebConfigSection, MediaActionServer"/>
  </configSections>
  <connectionStrings>
    <add name="backgroundEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\sqlexpress;Initial Catalog=background;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
  </connectionStrings>

  <WebConfigSection WebName="占占網站" DoMain="www.zhanzhan.com"  />
  <appSettings>
    <add key="site" value="www.zzl.com"/>

  </appSettings>
</configuration>      

測試代碼:

static void Main(string[] args)
    {
       Console.WriteLine(System.Configuration.ConfigurationManager.AppSettings["site"]);
       Console.WriteLine(WebConfigManager.Instance.DoMain);
       Console.WriteLine(WebConfigManager.Instance.WebName);
    }