2011-06-16 17 views
9

En mi solicitud cuando trato de obtener la cadena de conexión mediante este código:sistema de configuración no se pudo inicializar

System.Configuration.ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString; 

Se produce una excepción que "Configuración del sistema no se pudo inicializar". ¿Dónde está el formato de app.config mal?

<?xml version="1.0"?> 
    <configuration> 


     <connectionStrings> 
     <add name="ConStr" connectionString="Integrated Security=false;Persist Security Info=False;User ID=funny;password=veryfunny;Initial Catalog=vegimanager;Data Source=.\sqlexpress;"/> 
     </connectionStrings> 



     <configSections> 
     <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
      <section name="Vegi_Manager.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/> 
     </sectionGroup> 
     </configSections> 




     <userSettings> 
     <Vegi_Manager.Properties.Settings> 
      <setting name="FIRMNAME" serializeAs="String"> 
      <value/> 
      </setting> 
      <setting name="FIRMADDRESS" serializeAs="String"> 
      <value/> 
      </setting> 
      <setting name="FIRMCITY" serializeAs="String"> 
      <value/> 
      </setting> 
      <setting name="FIRMSTATE" serializeAs="String"> 
      <value/> 
      </setting> 
      <setting name="FIRMPHONE" serializeAs="String"> 
      <value/> 
      </setting> 
      <setting name="FIRMMOBILE" serializeAs="String"> 
      <value/> 
      </setting> 
      <setting name="FIRMEMAIL" serializeAs="String"> 
      <value/> 
      </setting> 
      <setting name="FIRMTIN" serializeAs="String"> 
      <value/> 
      </setting> 
      <setting name="FIRMPAN" serializeAs="String"> 
      <value/> 
      </setting> 
      <setting name="FIRMMANDITAXNO" serializeAs="String"> 
      <value/> 
      </setting> 
      <setting name="INITIALFONFIGDONE" serializeAs="String"> 
      <value>False</value> 
      </setting> 
      <setting name="FIRMJURISDICTION" serializeAs="String"> 
      <value/> 
      </setting> 
      <setting name="FIRMBANKDETAILS" serializeAs="String"> 
      <value/> 
      </setting> 
      <setting name="FIRMDETAILS" serializeAs="String"> 
      <value/> 
      </setting> 
      <setting name="BILLFORMATNO" serializeAs="String"> 
      <value>0</value> 
      </setting> 
      <setting name="PRINTERNAME" serializeAs="String"> 
      <value/> 
      </setting> 
     </Vegi_Manager.Properties.Settings> 
     </userSettings> 



     <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
     </startup> 
    </configuration> 
+0

En su muestra falta la etiqueta de apertura "", pero tal vez simplemente no se copió? –

+0

Sí, simplemente no se ha copiado. –

Respuesta

24

trate de poner la configSections como el primer elemento secundario de configuration, porque configSections debe ser el primer elemento de configuraciones

Así que su archivo de configuración será algo así:

<configuration> 

    <configSections> 
    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <section name="Vegi_Manager.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/> 
    </sectionGroup> 
    </configSections> 

    <connectionStrings> 
    <add name="ConStr" connectionString="Integrated Security=false;Persist Security Info=False;User ID=funny;password=veryfunny;Initial Catalog=vegimanager;Data Source=.\sqlexpress;"/> 
    </connectionStrings> 

    <userSettings> 
    <Vegi_Manager.Properties.Settings> 
     <setting name="FIRMNAME" serializeAs="String"> 
     <value/> 
     </setting> 
     <setting name="FIRMADDRESS" serializeAs="String"> 
     <value/> 
     </setting> 
     <setting name="FIRMCITY" serializeAs="String"> 
     <value/> 
     </setting> 
     <setting name="FIRMSTATE" serializeAs="String"> 
     <value/> 
     </setting> 
     <setting name="FIRMPHONE" serializeAs="String"> 
     <value/> 
     </setting> 
     <setting name="FIRMMOBILE" serializeAs="String"> 
     <value/> 
     </setting> 
     <setting name="FIRMEMAIL" serializeAs="String"> 
     <value/> 
     </setting> 
     <setting name="FIRMTIN" serializeAs="String"> 
     <value/> 
     </setting> 
     <setting name="FIRMPAN" serializeAs="String"> 
     <value/> 
     </setting> 
     <setting name="FIRMMANDITAXNO" serializeAs="String"> 
     <value/> 
     </setting> 
     <setting name="INITIALFONFIGDONE" serializeAs="String"> 
     <value>False</value> 
     </setting> 
     <setting name="FIRMJURISDICTION" serializeAs="String"> 
     <value/> 
     </setting> 
     <setting name="FIRMBANKDETAILS" serializeAs="String"> 
     <value/> 
     </setting> 
     <setting name="FIRMDETAILS" serializeAs="String"> 
     <value/> 
     </setting> 
     <setting name="BILLFORMATNO" serializeAs="String"> 
     <value>0</value> 
     </setting> 
     <setting name="PRINTERNAME" serializeAs="String"> 
     <value/> 
     </setting> 
    </Vegi_Manager.Properties.Settings> 
    </userSettings> 

    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
</configuration> 
+0

¡Funciona como un cuchillo caliente a través de la mantequilla! –

+0

:) Me alegro de poder ayudar .. – Sumit

+0

2 años después y su solución aún funciona. ¡Gracias! – andrewb

1

Este es un poco tarde lo sé, pero cuando elimino esto:

<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" /> 
</startup> 

, entonces el error desaparece.

+1

Debe tener configSections como primer hijo "Si el elemento configSections está en un archivo de configuración, el elemento configSections debe ser el primer elemento secundario del elemento de configuración.". Si mueve este elemento de configuración, funcionará. – Thomas

0

Esto funciona para mí. Asegúrese de que su app.config o web.config comienza con la etiqueta<configSections> por ejemplo, dentro de la pestaña <configuration>

<configSections> 
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true"/> 
    </configSections> 
    <connectionStrings> 
<add name="ConStr" connectionString="Integrated Security=false;Persist Security Info=False;User ID=funny;password=veryfunny;Initial Catalog=vegimanager;Data Source=.\sqlexpress;"/> 
     </connectionStrings> 
    <connectionStrings> 

después de que asegurarse de que la propiedad de destino marco de su proyecto no es el perfil del cliente

Cuestiones relacionadas