Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 单声道';s XSP Web服务器可以';在Linux上找不到MySql.Web.dll_Asp.net_Mysql_Linux_Mono_Xsp - Fatal编程技术网

Asp.net 单声道';s XSP Web服务器可以';在Linux上找不到MySql.Web.dll

Asp.net 单声道';s XSP Web服务器可以';在Linux上找不到MySql.Web.dll,asp.net,mysql,linux,mono,xsp,Asp.net,Mysql,Linux,Mono,Xsp,我正在努力让我的ASP.Net项目在Linux上运行。我一直在windows上使用XSP测试我的代码,但现在我正在努力确保我也可以在Linux上开发和测试。为此,我让Ubuntu运行,并让MonoDevelop和MySQL运行。我已经下载了最新的MySQL Connector/Net,我想我已经正确安装了它 没有软件包可以自动安装MySQL Connector/Net进行分发,因此我从MySQL网站下载了6.2.3 zip文件。现在我已经发现了区分大小写的问题,因为zip文件包含小写的文件名,而

我正在努力让我的ASP.Net项目在Linux上运行。我一直在windows上使用XSP测试我的代码,但现在我正在努力确保我也可以在Linux上开发和测试。为此,我让Ubuntu运行,并让MonoDevelop和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
我还创建了包文件,以便在MonoDevelop中添加对程序集的引用。文件夹/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
此时,我可以在MonoDevelop内的项目中使用程序集。编辑项目参照时,这些程序集将显示在可用程序集列表中。该项目现在在MonoDevelop内部编译无误。但是,当我在XSP中运行已编译的web项目时,浏览器中会显示以下错误:

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

融合的是,最初的错误是它无法加载MySql。数据.dll,而现在的错误消息是它无法加载MySql。Web.dll。这意味着我以某种方式修复了数据dll的问题,现在我又遇到了Web dll的问题。我已经去重新做了,我学会了修复数据dll的问题,但我无法让Web dll工作

不幸的是,我对Linux和Mono(但不是ASP.Net)还是相当陌生,我已经没有东西可以尝试了。同样地,我在谷歌上也没有找到任何可以尝试的东西,除了上面所描述的让我寻求帮助的东西

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

谢谢,
-将不是一个完美的解决方案(我不知道为什么会出错),但如果您赶时间,请将MySql.Web.dll复制到应用程序的bin目录

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


MONO_LOG_LEVEL=“debug”MONO_LOG_MASK=“dll”xsp2

我得到的是一个ASP.Net Web项目,它将所有内容编译到bin文件夹中的ProjectName.dll文件中。我在那个文件夹中有MySql dll文件,但在浏览器中显示的输出没有变化。我确实得到了一些可能相关的输出。请看这里(docs.google.com/View?id=dvwt9nw_45f5t7crdx)。有趣的是,它显示正在加载MySql.Data.dll(这是我的Web.config文件中的第一个)。然后它尝试加载MySql.Web.dll,但加载libc.so.6时出现错误。我的解释是我错过了那个图书馆,但我可能错了。你知道下一步该怎么做吗?你可能想看看MySql网站,看看MySql.Data是否与Mono兼容。我不认为这是一个兼容性问题。我确实注意到,在日志中,您帮助我生成了一个dll,它试图在/usr/lib/MySql.Web.dll中查找dll。我把文件放在那里,网站现在运行了。然而,我相信这是某个地方的一个bug的症状。当我有两个应用程序依赖于不同版本的dll时会发生什么。在/usr/lib中不能有同一dll的两个版本。我不知道为什么它不能使用文件的其他3个副本中的一个(一个在projectbin中,一个在GAC中,一个在/usr/lib/mono/2.0中)