the type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception for Windows XP

12.3k views Asked by At

My WPF application works fine on Windows 7, but throws the above error when running on Windows XP. I am using ENtity Framework 6.1.1

App.xaml is

<Application.Resources>
    <main:MainConverter x:Key="MainVerter"/>
    <Style x:Key="DetailHead1Style" TargetType="TextBlock">
        <Setter Property="FontSize" Value="20"/>
        <Setter Property="FontWeight" Value="Bold"/>
        <Setter Property="Foreground" Value="DarkSlateGray"/>
        <Setter Property="Opacity" Value="0.8"/>
        <Setter Property="FontStyle" Value="Italic"/>
        <Setter Property="Margin" Value="6,2,6,2"/>
    </Style>
    <Style  x:Key="DetailsOuterGridStyle" TargetType="Grid">
        <Setter Property="Background" Value="White"/>
    </Style>
</Application.Resources>

The inner exception is

System.Configuration.ConfigurationErrorsException: An error occurred creating the configuration section handler for entityFramework: Request failed. 
(Q:\devnet10\SBD.CartBrowser\SBD.CartBrowser\bin\Debug\SBD.FlightControl.exe.Config line 23) ---> System.Security.SecurityException: Request failed.
       at System.RuntimeMethodHandle.PerformSecurityCheck(Object obj, RuntimeMethodHandleInternal method, RuntimeType parent, UInt32 invocationFlags)
       at System.RuntimeMethodHandle.PerformSecurityCheck(Object obj, IRuntimeMethodInfo method, RuntimeType parent, UInt32 invocationFlags)
       at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
       at System.Reflection.ConstructorInfo.Invoke(Object[] parameters)
       at System.Configuration.TypeUtil.InvokeCtorWithReflectionPermission(ConstructorInfo ctor)
       at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.CreateSectionImpl(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader)
       at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.CreateSectionWithRestrictedPermissions(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader)
       at System.Configuration.RuntimeConfigurationRecord.CreateSection(Boolean inputIsTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader)
       at System.Configuration.BaseConfigurationRecord.CallCreateSection(Boolean inputIsTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader, String filename, Int32 line)

The app.config contains the correct connection string. Could it be interpreted differently on XP?

[Update] The code fails when initialising the connection.

 var connect = new CartConnect(constr);

[Update]

app.config is

 <?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
  </configSections>

  <connectionStrings>
    <add name="CartConnect_HAPPY4" connectionString="metadata=res://*/Edm.CartModel.csdl|res://*/Edm.CartModel.ssdl|res://*/Edm.CartModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Database=mydatabase;Server=Server15\SQLExpress;Integrated Security=False;User=mylogin;Password=mypassword;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient"/>
  </connectionStrings>

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0"/>
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
    </providers>
  </entityFramework>

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

</configuration>

I set up my connection string using

private CartConnect MakeConnect()
{
    string key = string.Format("CartConnect_{0}", Environment.MachineName.ToUpperInvariant());
    string constr = ConfigurationManager.ConnectionStrings[key].ConnectionString;
    var connect = new CartConnect(constr); // fails here

    connect.Configuration.LazyLoadingEnabled = false;

    connect.Configuration.ProxyCreationEnabled = false;

    return connect;
}

I looked at other questions on "An error occurred creating the configuration section handler for entityFramework"

I tried removing and re-adding Entity Framework using NuGet

[Update]

Thank you ErikEJ. Copying the files locally works. I wonder if there is a way to get it working on the network?

Reminds me of my problem in this question about regasm

1

There are 1 answers

0
ErikEJ On BEST ANSWER

Is the Q: drive local? If not, try to run the app from a local drive - the error message indicates that there is a security issue preventing you to run from a network folder.