MySQL - ошибка Unable to find the requested .Net Framework Data Provider
Материал из 1GbWiki.
Версия 12:18, 16 мая 2011 (править) Dmach (Обсуждение | вклад) м ← К предыдущему изменению |
Версия 20:40, 19 сентября 2011 (править) (отменить) Argar (Обсуждение | вклад) (Текст изменен мною. Решил написать, т.к. только в такой комбинации у меня заработала страница.) К следующему изменению → |
||
Строка 1: | Строка 1: | ||
=== Пример ошибки === | === Пример ошибки === | ||
- | Ошибка '''Unable to find the requested .Net Framework Data Provider. It may not be installed.''' может возникать в случае использования [http://dev.mysql.com/downloads/connector/net/ mySQL .NET Connector] при | + | Ошибка '''Unable to find the requested .Net Framework Data Provider. It may not be installed.''' может возникать в случае использования [http://dev.mysql.com/downloads/connector/net/ mySQL .NET Connector] при неразмещении его на сайте. Ниже описано что делать. |
[[Изображение:Fwdataprovider.png|пример ошибки]] | [[Изображение:Fwdataprovider.png|пример ошибки]] | ||
- | === | + | === Добавить файлы MySQL .NET Connector в проект === |
- | + | Вам необходимо: | |
- | + | 1. Зайти в серверную часть Вашего проекта в Visual Studio. | |
- | В web.config | + | 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: | ||
<configuration> | <configuration> | ||
Строка 17: | Строка 33: | ||
<compilation> | <compilation> | ||
<assemblies> | <assemblies> | ||
- | <add assembly="MySql.Data, Version=6.3. | + | <add assembly="MySql.Data, Version=6.3.7.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> |
<assemblies> | <assemblies> | ||
<compilation> | <compilation> | ||
Строка 23: | Строка 39: | ||
<configuration> | <configuration> | ||
- | + | Если Вы используете другую версию коннектора, то необходимо соответственно изменить поле 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> | <connectionStrings> | ||
- | <add | + | <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> | </connectionStrings> | ||
- | + | Если при попытке создать соединение у вас возникает ошибка, то временно измените формат представления данных в языках системы с русского на English (United States). Тогда ошибки не будет и соединение будет создано (это известная ошибка в коннекторе). | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
[[Категория:WEB-сервер IIS]] | [[Категория:WEB-сервер IIS]] |
Версия 20:40, 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:
<configuration> <system.web> <compilation> <assemblies> <add assembly="MySql.Data, Version=6.3.7.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> <assemblies> <compilation> <system.web> <configuration>
Если Вы используете другую версию коннектора, то необходимо соответственно изменить поле 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). Тогда ошибки не будет и соединение будет создано (это известная ошибка в коннекторе).