代码之家  ›  专栏  ›  技术社区  ›  William Leader

Mono的XSP Web服务器在Linux上找不到mysql.web.dll

  •  0
  • William Leader  · 技术社区  · 14 年前

    我正在努力让我的ASP.NET项目在Linux上工作。我已经在Windows上使用XSP测试了我的代码,但现在我正在努力确保我也可以在Linux上开发和测试。为此,我运行了Ubuntu,运行了MonoDevelopment和MySQL。我已经下载了最新的mysql connector/net,我想我已经正确安装了它。

    没有包可以自动安装mysql connector/net进行分发,所以我从mysql网站下载了6.2.3 zip文件。现在,我已经发现了区分大小写的问题,因为zip文件包含小写的文件名,mono希望使用大写的文件名。所以我将文件名分别改为mysql.data.dll和mysql.web.dll。我还使用gacutil将两个文件安装到gac。同样,我已经将文件添加到mono-lib目录中。我的计算机上确实存在以下文件:

    /usr/lib/mono/gac/MySql.Data/6.2.3.0__c5687fc88969c44d/MySql.Data.dll
    /usr/lib/mono/gac/MySql.Web/6.2.3.0__c5687fc88969c44d/MySql.Web.dll
    /usr/lib/mono/2.0/MySql.Data.dll
    /usr/lib/mono/2.0/MySql.Web.dll
    

    我还创建了包文件,以便可以向MonoDevelope中的程序集添加引用。文件夹/usr/lib/mono/2.0包含我添加的两个.pc文件。

    MySql.Web.pc:

    Name: MySql.Web
    Description: ASP Membership, Role and Profile providers powered by MySQL
    Version: 6.2.3
    Libs: -r:/usr/lib/mono/gac/MySql.Web/6.2.3.0__c5687fc88969c44d/MySql.Web.dll
    

    MySql.Data.pc:

    Name: MySql.Data
    Description: Provides connectivity to MySQL databases
    Version: 6.2.3
    Libs: -r:/usr/lib/mono/gac/MySql.Data/6.2.3.0__c5687fc88969c44d/MySql.Data.dll
    

    此时,我可以在MonoDevelope内的项目中使用程序集。当我编辑项目引用时,这些程序集将显示在可用程序集列表中。这个项目现在在MonoDevelope中编译时没有出错。但是,当我在XSP中运行已编译的Web项目时,浏览器中会显示以下错误:

    System.IO.FileNotFoundException:无法加载文件或程序集“mysql.web.dll,版本=6.2.3.0,区域性=中性,PublicKeyToken=c5687fc88969c44d”或其依赖项之一。系统找不到指定的文件。

    Fustrating的意思是,最初的错误是它无法加载MySQL。 数据 .dll,现在错误消息是它无法加载MySQL。 网状物 DLL。这意味着我以某种方式修复了数据DLL的问题,现在我又解决了Web DLL的问题。我已经走了,重新做了,我学会了修复数据dll的问题,但我无法使Web dll工作。

    不幸的是,我对Linux和Mono还很陌生(但对ASP.NET不熟悉),而且我已经没有什么可尝试的了。同样,我在谷歌上也没有发现任何东西可以尝试,除了上面描述的让我寻求帮助的东西。

    有人能帮我找出为什么XSP找不到程序集,以及我能做些什么吗?

    谢谢, -威尔

    2 回复  |  直到 14 年前
        1
  •  1
  •   jpobst    14 年前

    您可以尝试设置一些环境变量,这些变量应该告诉您所有mono在哪里查找程序集:

    mono_log_level=“debug”mono_log_mask=“dll”xsp2

        2
  •  0
  •   Dave Archer    14 年前

    不是一个完美的修复方法(我不知道为什么会出错),但是如果您赶时间,请将mysql.web.dll复制到应用程序的bin目录中。

    推荐文章