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

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

(Различия между версиями)
Перейти к: навигация, поиск
Версия 20:40, 19 сентября 2011 (править)
Argar (Обсуждение | вклад)
(Текст изменен мною. Решил написать, т.к. только в такой комбинации у меня заработала страница.)
← К предыдущему изменению
Версия 20:44, 19 сентября 2011 (править) (отменить)
Argar (Обсуждение | вклад)

К следующему изменению →
Строка 27: Строка 27:
=== Внести изменения в web.config === === Внести изменения в web.config ===
-Добавить assembly:+Добавить assembly MySql:
<configuration> <configuration>
Строка 33: Строка 33:
<compilation> <compilation>
<assemblies> <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"/> <add assembly="MySql.Data, Version=6.3.7.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
<assemblies> <assemblies>
Строка 38: Строка 39:
<system.web> <system.web>
<configuration> <configuration>
 +
 +(до добавления в проекте уже есть assembly System.Data.Entity, если Вы добавляли ADO.NET Entity Data Model в проект)
Если Вы используете другую версию коннектора, то необходимо соответственно изменить поле Version. Остальные данные остаются неизменными. Если Вы используете другую версию коннектора, то необходимо соответственно изменить поле Version. Остальные данные остаются неизменными.

Версия 20:44, 19 сентября 2011

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

Ошибка 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). Тогда ошибки не будет и соединение будет создано (это известная ошибка в коннекторе).

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