Подтвердить что ты не робот

Не удалось найти запрошенный поставщик данных .Net Framework в Visual Studio 2010 Professional

Почему я получаю "Не удается найти запрошенный поставщик данных .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.

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

4b9b3361

Ответ 1

Я видел сообщения о том, что у людей есть и дополнительные, самозавершающиеся node в файле 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>

Ответ 2

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

<system.data>
    <DbProviderFactories >
        <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.6.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
</system.data>

Ответ 3

В моем случае запись поставщика данных для 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 на запись

Ответ 4

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

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

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

Ответ 5

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

<system.data>
  <DbProviderFactories>
    <clear />
       ...
  </DbProviderFactories>
</system.data>

Ответ 6

Это работает для меня, спасибо. У меня была эта проблема, когда я установил .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>