关于Linux和Windows下部署mysql.data.dll的注册问题

mysql ado.net connector下载地址:

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

选择版本:

Generally Available Releases(1)是发布版(bug什么的较少的版本吧),而Development
Releases(2)是开发版

我们采用1版本

Windows (x86, 32-bit), MSI Installer

该版本是window下的安装版,如果你安装了这个版本的话,在本机调试的时候可以不用再次注册MySql.Data.MySqlClient,vs会找到dbprovider为此的dll,

如果重复注册会报错

创建 system.data 的配置节处理程序时出错:
列“InvariantName”被约束为是唯一的。值“MySql.Data.MySqlClient”已存在。

如下图 

.Net & Mono (Architecture Independent), ZIP Archive

如果是这个版本的话,那么你需要手动注册下dll,否则调试的时候或者部署到Linux服务器上的时候MySql.Data.dll是无法被加载的,所以要手工注册下代码如下


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

对于

type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data,Version=6.9.0.0,
Culture=neutral, PublicKeyToken=c5687fc88969c44d"

这段根据自己的版本改变:C:\Windows\Assembly

注意了:这样就会在windows下调试的时候报重复注册的错了。

我纠结了:在群友熬夜后如头像的帮助下解决了

在注册前先移除,上面web.config的配置改变为


    <system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient"></remove>//先移除,接下来注册
<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.9.0.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
</DbProviderFactories>
</system.data>

ok,解决了,多谢熬夜后如头像的帮助。我也记录此问题来帮助以后遇到这个问题的朋友。

时间: 2024-08-12 23:08:10

关于Linux和Windows下部署mysql.data.dll的注册问题的相关文章

Silverlight用户无法注册之MySql.Data.dll不一致

本篇博文记录本人解决一个"用户无法注册"的问题的过程 1 问题描述: 用户可以删除:但不能注册,也不能修改权限: 图 1用户注册失败 图 2修改用户权限出错 2 解决过程 1)粗暴方法:直接替换正确的工程 我将一个正确的Access和DataService 工程替换掉原来出错的Access和DataService,依然出错.甚至,我将UserManage和DataAccessSilverlight两个工程一起替换,依然不起作用. 图 3被替换掉的几个工程(这几个工程与用户管理相关) 2

Windows下安装mysql实践

安装mysql-essential-5.1.36-win32.msi (2009年的),懒得下载新的了. 安装时,先前安装的phpedit构成干扰,其license过期了,也找不到了.卸载phpedit,重新安装,结果启动mysql服务,出现1067错误. 解决这个问题,网上有一些指导.进入D:\Develop\MySQL\MySQL Server 5.1,拷贝my-small.ini,重命名为my.ini. 于是解决这个问题.中间曾把my.ini拷贝到c:\windows下. Linux下my

解决Windows下安装MySQL 5.5,运行MySQLInstanceConfig.exe没有响应的方法

我在Windows Server 2003虚拟机上安装MySQL5.5(社区版).这个虚拟机之前被别人安装过MySQL5.5和MySQL5.0,但是忘了root密码,所以重装.不出意外的遇到了配置MySQL Instance时MySQLInstanceConfig.exe没有响应的问题.(我记得以前遇到这个问题,就果断换了MySQL5.0,绕开却并未解决) 试了很多方法,有说需要以Administrator身份运行(据说WIN7上安装会是这个问题,而我用的是Windows Server 2003

windows下的mysql安装

windows下的mysql安装分为采用安装文件安装(用的是windows的install程序来做安装),还有一种方式是通过windows中注册一个服务(也可以不注册服务,你每次在windows系统的dos窗口下通过mysqld,mysqldadmin等来做启动和关闭.所以注册了服务相当于把这些exe的程序和路径封装到服务中了,此外服务也可以方便的定义为开机就启动).总之就是两种安装方式. 如果第一次安装建议在MYSQL官网上下载包含INSTALL的方式来做安装,这样就相当于傻瓜式的操作,一般不

Windows下安装Mysql绿色zip版本

以mysql-5.7.4-m14-winx64为例,mysql-5.7.4-m14-winx64.zip下载地址http://dev.mysql.com/downloads/mysql/5.7.html 解压到安装目录D:\mysql-5.7.4-m14-winx64 安装根目录D:\mysql-5.7.4-m14-winx64下创建选项配置文件my.ini [client] port=3306 socket="D:/mysql-5.7.4-m14-winx64/data/mysql.sock&

windows下安装mysql笔记

接着上几篇文章再来看下windows下安装mysql. 我这里是windows7 64位, 安装过程中还是遇到一些坑,这里记录下. 一.下载安装包 打开mysql官网下载页面:http://dev.mysql.com/downloads/mysql/ 选择相应的版本和平台 这里选择的是5.7.13版本64位的 压缩包, 文件有310M比较大. 点击Download进入真正的下载页面,发现要登录才能下载 ,要细心点会发现下面有No thanks, just start my download. 就

(图解)windows下的mysql客户端mysqlworkbench 链接虚拟机上CentOS的mysql服务器

本人在虚拟机上CentOS的Linux环境下安装了mysql服务器,在本地Windows下安装了mysql的客户端mysqlworkbench ,所以就想让windows下的mysql客户端mysqlworkbench 链接虚拟机上CentOS的mysql服务器,整个过程记录如下: 一.安装客户端Mysql WorkBench 1.下载安装包:mysql-workbench-community-6.2.5-winx64.msi 下载路径:http://dev.mysql.com/download

Windows下安装MySQL详细教程

Windows下安装MySQL详细教程 1.安装包下载  2.安装教程 (1)配置环境变量 (2)生成data文件 (3)安装MySQL (4)启动服务 (5)登录MySQL (6)查询用户密码 (7)设置修改用户密码 (8)退出 1.安装包下载. 下载地址:https://dev.mysql.com/downloads/mysql/ 点击下载之后,可以选择注册Oracle账号,也可以跳过直接下载. 下载完成后,选择一个磁盘内放置并解压. 2 安装教程 (1)配置环境变量 变量名:MYSQL_H

Tomcat日志文件的输出在Linux和Windows下的差异

前言 最近老大发现Tomcat的日志文件catalina.out里存在着大量的和公司项目相关的log信息,因为一般都是会使用日志框架并另外将log信息输出到另外的文件里的,catalina.out文件里就不需要这些多余的log信息了. 不过我在测试的时候发现,Linux和Windows下catalina.out文件的输出是有区别的. 在Linux和Windows下的差异 在Windows平台下,所有System.out, System.err以及printStackTrace()输出的log信息