Почему MySql Connector.Net работает на моем компьютере с Windows, но не работает на 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 вместо моно. Можно ли это сделать?


person sergio    schedule 22.09.2011    source источник
comment
Вы ничего не сказали о ссылке на MySql.Data.dll в вашем проекте. Вы сделали это? Я обнаружил, что установка dll в GAC НЕ означает, что вы можете запускать свою программу без локальной копии dll. Кроме того, я знаю, что для последних версий MySql.Web.dll требуется платформа .NET 4.0. Я не уверен, что MySql.Data.dll требует того же, но попробовать можно.   -  person ken    schedule 02.01.2012


Ответы (1)


У меня это работает с использованием последнего коннектора для .NET/Mono, найденного здесь.

  1. Добавьте mysql.data.dll (zip-путь mysql-connector-net-6.4.4-noinstall/v4) в ссылки на проект;
  2. Изменения Web.Config: http://pastebin.com/CsHzwR4M.
person Rui Marques    schedule 17.01.2012