Не удалось найти запрошенный поставщик данных .Net Framework в Visual Studio 2010 Professional. - PullRequest
30 голосов
/ 29 марта 2012

Почему я получаю сообщение «Не удается найти запрошенный поставщик данных .Net Framework» при попытке установить новый источник данных в Visual Studio 2010 Professional?

Моя статистика:

  • Windows 7 64-битная 16 ГБ ОЗУ
  • Visual Studio 2010 Professional
  • SQL Server 2008 (сервер A, полные права администратора)
  • SQL Server 2008 (сервер B, полные права администратора)

Я запустил тестовое приложение ASP.NET, и при попытке добавить новый источник данных я получаю:

Невозможно найти запрошенный поставщик данных .Net Framework.,Возможно, он не установлен.

У меня установлен .NET 4.

Когда я создаю соединение и нажимаю «Проверить соединение», оно успешно проходит проверку.SQL Server Management Studio подключается очень хорошо, и я проверил учетные данные на всех.

Ответы [ 6 ]

56 голосов
/ 29 марта 2012

В файле machine.config я видел сообщения о людях, имеющих и дополнительный, самозавершающийся узел.Удаление его решило их проблему.machine.config находится в \Windows\Microsoft.net\Framework\vXXXX\Config.Вы можете иметь множество конфигурационных файлов в зависимости от того, сколько версий фреймворка установлено, включая 32- и 64-битные варианты.

<system.data>
    <DbProviderFactories>
        <add name="Odbc Data Provider" invariant="System.Data.Odbc" ... />
        <add name="OleDb Data Provider" invariant="System.Data.OleDb" ... />
        <add name="OracleClient Data Provider" invariant="System.Data ... />
        <add name="SqlClient Data Provider" invariant="System.Data ... />
        <add name="IBM DB2 for i .NET Provider" invariant="IBM.Data ... />
        <add name="Microsoft SQL Server Compact Data Provider" ... />     
    </DbProviderFactories>

    <DbProviderFactories/>  //remove this one!
</system.data>
13 голосов
/ 15 января 2013

Мне нравятся другие предложения, но я бы не стал обновлять machine.config для одного приложения.Я предлагаю вам просто добавить его в web.config / app.config.Вот что мне нужно, чтобы использовать MySql Connector / NET, который я "развернул".

3 голосов
/ 05 августа 2012

В моем случае запись поставщика данных для MySQL «просто» отсутствовала в файле machine.config, описанном выше (хотя я правильно установил коннектор MySQL)

<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />

Не забудьте поставитьПравильная версия вашего MySQL на Entry

1 голос
/ 08 декабря 2016

Я думал, что моя проблема связана с моим machine.config для ответов, которые я нашел в сети, но виновник оказался в файле web.config проекта, который очищал DbProviderFactories.

<system.data>
  <DbProviderFactories>
    <clear />
       ...
  </DbProviderFactories>
</system.data>
1 голос
/ 02 августа 2013

У меня возникла эта проблема с версией 6.7.4, и я решил ее, установив версию 6.5.6.

Моя установка - это выпуск Windows 2008 R2 SP1 Data Center, SQL Server 2008 R2 с Business Intelligence Development Studio (VS2008).Очень простая установка.

Когда я устанавливал 6.7.4, я даже не видел поставщика MySQL в качестве выбора.Однако, когда я посмотрел в файл machine.config, я увидел ссылки на поставщика ролей MySQL и т. Д., Но в.

запись не была добавлена.
0 голосов
/ 03 июля 2019

Это работает для меня, спасибо.У меня была эта проблема, когда я установил .Net Framework 4.7.1, каким-то образом настройки DbProviderFactories в System.Data в конфигурации машины были уничтожены.Он начал работать после добавления необходимых параметров конфигурации, как показано ниже DataProviderFactories

<system.data>
    <DbProviderFactories>
      <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
      <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
    </DbProviderFactories>
</system.data>
...