Использование ADO.NET MySQL Provider в MVC3 (Невозможно найти запрошенный поставщик данных .Net Framework. Возможно, он не установлен.) - PullRequest
2 голосов
/ 29 февраля 2012

Я пытаюсь подключиться к базе данных mysql на моем веб-сервере, но получаю:

Unable to find the requested .Net Framework Data Provider.  It may not be installed.

Я предполагаю, что присутствует коннектор ADO.NET, потому что если я изменю свою конфигурацию на:

providerName="System.Data.SQLClient"

Я получаю:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Конфигурация моего провайдера:

    <add name="MySQLMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.0.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer"
         enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
         autogenerateschema="true" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
         applicationName="/" />
  </providers>

Строка моего подключения:

<add name="LocalMySqlServer"
     connectionString="Data Source=localhost;user id=web210-aaron;password=tester;database=web210-aaron;"
     providerName="System.Data.MySQLClient"/>

Я почти уверенэто правильно, особенно если я запускаю его со своего локального компьютера (меняя хост на IP-адрес сервера), он работает идеально!Может ли кто-нибудь подтвердить, что это правильная строка подключения?

Ответы [ 2 ]

2 голосов
/ 02 марта 2012

Я собираюсь ответить на свой вопрос, так как это потратило впустую 3 дня моей жизни, пытаясь настроить это вручную.

Ситуация

  • Вы создалиприложение MVC3 / razor (возможно другое c #)
  • Вы используете MySql.Data.MySqlClient, чтобы попытаться подключиться к вашей базе данных
  • Вы можете подключиться из IDE, такой как VS2010, из своего локальногокомпьютер к локальной базе данных или базе данных на вашем сервере, но не может подключиться при развертывании сайта
  • При развертывании веб-сайта вы получаете эту ошибку: Unable to find the requested .Net Framework Data Provider. It may not be installed. При попытке обратиться к базе данных MySql

Проблема в том, что ваш сайт не может найти ссылку на MySQL.Data.


Решение

Существует несколько разделов, которые необходимобыть измененным в вашем файле web.config, таком как dbproviderfactories и создании пространства имен.Их можно добавить вручную, но гораздо проще позволить инструментам сделать это за вас.

Вам нужно будет включить соответствующие DLL в папку bin или, что еще лучше, использовать Visual Studio SP1 , чтобы создать соответствующую папку и ссылки, щелкнув правой кнопкой мыши по проекту ( там есть опция для создания папки bin, содержащей все ваши библиотеки ).Убедитесь, что MySql.Data.MySqlClient содержится в этой папке. Если это не так, вы сможете перетащить его из папки bin в новую папку, созданную VS.

Затем вы можете использовать Консоль менеджера пакетов nuGet до установить BLToolKit .Это загрузит все недостающие библиотеки DLL, вставит их в ваши папки и автоматически сделает ссылку на них.Таким образом, вы можете развернуть свое приложение MVC на веб-сервере, где MySql.Data (или любая другая dll в этом отношении) может быть не установлена.

0 голосов
/ 29 февраля 2012

Вы должны сначала установить это

http://dev.mysql.com/downloads/connector/net/1.0.html

А это другой провайдер

http://dev.mysql.com/downloads/connector/net/#downloads

Затем добавьте ваш источник данных через Visual Studio, и он изменит app.config для вас

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