为什么MySql Connector.Net在我的Windows机器上工作但在Mono上不工作?

时间:2011-09-22 14:27:46

标签: asp.net mysql mono mysql-connector mod-mono

我已经安装了Mono(版本2.10.2),mod_mono并且已经成功地使用index.html和index.aspx测试了它,并回显了日期。

我的问题是我无法让MySQL与Mono合作;

我已经下载了mysql-connector-net-6.4.3-noinstall.zip文件, 将dll重命名为MySql.Data.dll,(从v2文件夹)

我安装了gacutil -i MySql.Data.dll 并编辑了两个machine.config文件(适用于2.0和4.0),添加以下内容:

<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.4.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />

然后我编辑了web.config文件,以确保PublicKeyToken被降低了。

我的索引页面背后有这个代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data;
using MySql.Data.MySqlClient;

namespace gpsmapper {

public partial class login : System.Web.UI.Page {

    protected void Page_Load(object sender, EventArgs e) {}

    protected void cmdLogin_Click(object sender, EventArgs e){
        string cs = "Server=localhost;" + "Database=gts;" + "User ID=root;" + "Password=root;" 
+ "Pooling=false";
        MySqlConnection dbcon = new MySqlConnection(cs);
    }
    }
}

这一切在Windows上运行良好,但最终将部署在CentOS盒子上。当我在CentOS盒子上运行时,它给出了以下错误:

Compilation Error

Description: Error compiling a resource required to service this request. Review your source file and modify it to fix this error.

Compiler Error Message: : at System.Reflection.AssemblyName..ctor (System.String assemblyName) [0x00000] in <filename unknown>:0
/gpsmapper/login.aspx

我该如何解决这个问题?有没有人遇到类似的事情?

作为一种解决方案我正在考虑使用ODBC驱动程序来访问MySQL而不是单声道的。可以这样做吗?

1 个答案:

答案 0 :(得分:0)

我使用最新的.NET / Mono连接器找到了here

  1. mysql.data.dll (zip路径 mysql-connector-net-6.4.4-noinstall / v4 )添加到项目引用中;
  2. Web.Config 更改:http://pastebin.com/CsHzwR4M