инициализатор типа 'системы.Данные.Сущность.Внутренний.AppConfig " выдал исключение для Windows XP


Мое приложение WPF прекрасно работает на Windows 7, но выдает вышеуказанную ошибку при запуске на Windows XP. Я использую ENtity Framework 6.1.1

Приложение.xaml - это

<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>

Внутреннее исключение -

System.Configuration.ConfigurationErrorsException: An error occurred creating the configuration section handler for entityFramework: Request failed. 
(Q:devnet10SBD.CartBrowserSBD.CartBrowserbinDebugSBD.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)

Приложение.config содержит правильную строку подключения. Можно ли это интерпретировать по-другому на XP?

[обновить] При инициализации соединения происходит сбой кода.

 var connect = new CartConnect(constr);

[обновление]

Приложение.конфиг

 <?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=Server15SQLExpress;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>

Я настроил моя строка подключения с использованием

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;
}

Я посмотрел другие вопросы на тему "произошла ошибка при создании обработчика раздела конфигурации для entityFramework"

Я попытался удалить и повторно добавить Entity Framework с помощью NuGet

[обновление]

Спасибо ErikEJ. Локальное копирование файлов работает. Интересно, есть ли способ заставить его работать в сети?

Напоминает мне о моей проблеме в этот вопрос о regasm

1 2

1 ответ:

Является ли диск Q: локальным? Если нет, попробуйте запустить приложение с локального диска-сообщение об ошибке указывает, что существует проблема безопасности, препятствующая запуску из сетевой папки.