MySQL - ошибка Unable to find the requested .Net Framework Data Provider

Материал из 1GbWiki.

Перейти к: навигация, поиск

Пример ошибки

Ошибка Unable to find the requested .Net Framework Data Provider. It may not be installed. может возникать в случае использования mySQL .NET Connector при неразмещении его на сайте. Ниже описано что делать.

пример ошибки

Добавить файлы MySQL .NET Connector в проект

Вам необходимо:

1. Зайти в серверную часть Вашего проекта в Visual Studio.

2. Открыть там вкладку References.

3. Добавить в нее следующие три файла:

  MySql.Data.dll
  MySql.Data.Entity.dll
  MySql.Data.Web.dll

4. В отношении каждого из трех этих файлов выбрать показать свойства (Properties) и изменить там параметр "Copy Local" на "true". Таким образом при создании файлов страницы эти три файла будут скопированы в папку Bin Вашей страницы.

Указанные три файла находятся по адресу: Program Files (x86)\MySQL\MySQL Connector Net 6.3.7\Assemblies\v4.0\ (этот адрес соответствует 64битной системе с коннектором версии 6.3.7. и v4.0 .NET)

Должны быть добавлены все три файла. Иначе работать не будет.

Внести изменения в web.config

Добавить assembly MySql:

<configuration>
  <system.web>
    <compilation>
      <assemblies>
       <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        <add assembly="MySql.Data, Version=6.3.7.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
      <assemblies>
    <compilation>
  <system.web>
<configuration>

(до добавления в проекте уже есть assembly System.Data.Entity, если Вы добавляли ADO.NET Entity Data Model в проект)

Если Вы используете другую версию коннектора, то необходимо соответственно изменить поле Version. Остальные данные остаются неизменными.

Добавить определение Data Provider:

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

Добавить строку подключения (она добавляется автоматически при добавлении ADO.NET Entity Data Model в проект) и выглядит так (добавляйте лучше не вручную):

<connectionStrings>
  <add name="EntitiesName" connectionString="metadata=res://*/DataClasses.csdl|res://*/DataClasses.ssdl|res://*/DataClasses.msl;provider=MySql.Data.MySqlClient;provider connection string="server=servername;User Id=USERID;password=PASSWORD;Persist Security Info=True;database=DATABASENAME"" providerName="System.Data.EntityClient" />
</connectionStrings>

Если при попытке создать соединение у вас возникает ошибка, то временно измените формат представления данных в языках системы с русского на English (United States). Тогда ошибки не будет и соединение будет создано (это известная ошибка в коннекторе).

Личные инструменты