ORACLE и Entity Framework. Ошибка: указанный поставщик магазина не найден в конфигурации или недействителен - PullRequest
3 голосов
/ 29 сентября 2011

В моем проекте я использую oracle и Entity Framework вместе. На моих машинах моя машина разработчика win7 и мой сервер win2008r2 Я установил Oracle beta Entity Framework и .net 4.0 Framework.

Однако мои проекты работают на локальной машине и не работают на сервере, выдавая ошибку:

the specified store provider cannot be found in the configuration or is not valid 
SystemArgumentException unable to find the requested .net Framework data provider ...

Кто-нибудь может мне помочь?

Ответы [ 5 ]

11 голосов
/ 17 января 2012

В пуле приложений и дополнительных настройках ...

Взгляните на «Включить 32-битные приложения» и посмотрите, включен ли он. Он не был установлен на моей Windows 7 64-битной, и у меня были те же проблемы.

Я предполагаю, что это также можно исправить установкой 64-битного ODAC, но еще не пробовал.

2 голосов
/ 06 февраля 2017

У меня была эта проблема раньше.Я следовал этим инструкциям, а затем решил: с windows 10 x64

1 - Установите Visual Studio 2015.

2 - Установите ODAC из http://www.oracle.com/partners/campaign/utilsoft-086879.html.

установить ODTforVS2015 из http://www.oracle.com/technetwork/topics/dotnet/downloads/odacmsidownload-2745497.html

скопировать файл tnsnames, настроенный на шаге №2, и вставить его в сетевую папку целевой установки на шаге № 3.

изменить C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ Machine.config <system.Data> тег, подобный следующему:

<system.data>
<DbProviderFactories>
    <add name="ODP.NET, Unmanaged Driver"  invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET, Unmanaged Driver" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
<add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver"  type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>

добавитьэта строка в web.config для веб-приложения или в App.config, если это консольное приложение.под тегом <configurations> </configurations> (внутри не под).

<system.data>
    <DbProviderFactories>
      <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver"  type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </DbProviderFactories>
</system.data>
2 голосов
/ 17 января 2012

короче: не используйте драйверы ODAC .net, вместо этого используйте полную установку клиента oracle.изменение компонентов ODAC может быть немного затруднительным.Так что установите последнюю версию клиента oracle на все машины, все хорошо.

  • старый ответ - Для обеих машин я установил сначала провайдера данных Oracle для .net, а затем провайдеров инфраструктуры бета-версии oracle.Так что для обеих машин у меня есть несколько экземпляров Oracle.

В моей машине разработки oracle бета-фреймворк сущностей настроен как клиент по умолчанию.-Я не знаю, когда / как это изменилось / кто изменился -

На сервере по умолчанию поставщик по-прежнему старый odp.net.

После смены провайдера по умолчанию на сервере на провайдер бета-версии сущности oracle beta он изменился.

Еще раз спасибо.

0 голосов
/ 29 сентября 2018

Если вы получаете эту ошибку в 2018 году и используете IIS Express, как я, вы можете проверить настройки .csproj и убедиться, что он работает с разрядностью x64. (Щелкните правой кнопкой мыши csproj веб-приложения, перейдите на вкладку «Веб», в разделе «Серверы» измените разрядность на x64).

0 голосов
/ 25 апреля 2014

Мы устанавливали наше приложение на сервере Windows 2012, и мы получали ту же ошибку, мы пытались запустить приложения в 32-битном режиме, но результаты были такими же. мы попытались получить список DbProviderFactories, установленных на машине с помощью консольного приложения, и выяснили, что отсутствует управляемый драйвер ODP.net. это наконец сработало, когда мы запустили пакетный файл, который мы нашли

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...