2015-10-20 18 views
0

我建立一个Windows服务应用程序,并收到以下错误asp.net放置在的appSettings的App.config

型“System.TypeInitializationException”未处理的异常出现在mscorlib.dll

几个性实验后,我发现从这个

<?xml version="1.0" encoding="utf-8"?> 
    <configuration> 
    <appSettings> 
     <add key="BancTecFilePath" value="C:\\FTPFolders\\BancTec\\"/> 
    </appSettings> 
    <configSections> 
     <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
     <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
    <connectionStrings> 
     <add name="SamplesEntities" connectionString="metadata=res://*/Model.SamplesEntities.csdl|res://*/Model.SamplesEntities.ssdl|res://*/Model.SamplesEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=unit6cog10sql01;initial catalog=Samples;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
    <entityFramework> 
     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
     <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
     </providers> 
    </entityFramework> 
    </configuration> 

这个改变我的App.config文件(移动<AppSettings>至底部)

<?xml version="1.0" encoding="utf-8"?> 
    <configuration> 
    <configSections> 
     <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
     <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
    <connectionStrings> 
     <add name="SamplesEntities" connectionString="metadata=res://*/Model.SamplesEntities.csdl|res://*/Model.SamplesEntities.ssdl|res://*/Model.SamplesEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=unit6cog10sql01;initial catalog=Samples;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
    <entityFramework> 
     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
     <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
     </providers> 
    </entityFramework> 
    <appSettings> 
     <add key="BancTecFilePath" value="C:\\FTPFolders\\BancTec\\"/> 
    </appSettings> 
    </configuration> 

工作。我把这个更进了一步,并保持移动<AppSettings>的时候,发现最高的,我可以把它直接低于<statup>

我一直认为,在App.config每个元素只是那被称为作为参考,这是必需的。

我的问题是什么是在后台发生的造成这个错误,为什么它所在

回答

0

据我所知,你可以在任何地方放置的AppSettings下configuration节点。
我可以考虑元素放置的唯一限制是configSections元素。从https://msdn.microsoft.com/en-us/library/aa903350.aspx报价:

如果该元素是一个配置文件,它必须是元素的第一个子 元素。

因此,您不允许将您的appsettings(或任何元素)放在configSections之上。

相关问题