Asp.net 带fastcgi-Mono-server4的Mono随机CS0006编译错误

Asp.net 带fastcgi-Mono-server4的Mono随机CS0006编译错误,asp.net,linux,mono,fastcgi-mono-server,Asp.net,Linux,Mono,Fastcgi Mono Server,我正在尝试使用Mono 2.10.8.1 w/fastcgi-Mono-server4在我的Linux服务器上部署一个在Mono/OSX上开发的ASP MVC项目 webapp总是很好地启动,但随后我开始发现各种uri的随机CS0006编译错误,一旦这些错误出现,它们就会一直出现,直到我重新启动服务器应用程序 一个示例错误: Server Error in '/' Application Compilation Error Description: Error compiling a res

我正在尝试使用Mono 2.10.8.1 w/fastcgi-Mono-server4在我的Linux服务器上部署一个在Mono/OSX上开发的ASP MVC项目

webapp总是很好地启动,但随后我开始发现各种uri的随机CS0006编译错误,一旦这些错误出现,它们就会一直出现,直到我重新启动服务器应用程序

一个示例错误:

Server Error in '/' Application

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: CS0006: Metadata file `/tmp/root-temp-aspnet-0/ed68754/App_global.asax_40e709ea.dll' could not be found

~/Views/Order/Download.aspx
从一月份开始就有了,但问题和答案似乎都是莫迪莫诺特有的,而且相当摇摆不定。有人对如何调试/解决/解决这个问题有什么建议吗?这让人非常沮丧。特别是,是否有任何“不受支持”的解决方法,我可以从我的Windows服务器机器上复制一些东西来使用MS实现而不是有缺陷的mono实现


(我也是。)

由于Mono-JIT试图编译不存在的临时文件时出现了错误,我花了几天时间尝试解决这个问题的不同方法(与解决它相比)。一个有效的解决方案是在Windows上使用aspnet_编译器创建一个二进制版本,该版本可以复制并在Linux/Mono上按原样运行(因为Mono的最新版本现在支持预编译的ASP.NET应用程序)

然而,我正在寻找一个本机Linux解决方案,我不想必须编译并同步二进制文件(与同步GIT代码副本相比),所以当我遇到Mono提前编译时,我正在寻找另一个解决方案,这几乎相当于Windows上的ngen.exe

虽然它没有预编译所有内容,但它似乎做到了这一点。对我来说,此部署脚本在没有任何运行时生成失败的情况下完成任务:

xbuild SystemDiscs.sln
mono --aot -O=all SystemDiscs/bin/SystemDiscs*.dll
killall -9 mono
nohup fastcgi-mono-server4 /socket=tcp:127.0.0.1:8000 /applications=/:/var/asp/S
ystemDiscs/SystemDiscs/ > /var/log/systemdiscs.log &

其中
SystemDiscs*.dll
是在第一步中使用
xbuild
编译的解决方案的输出。我认为这并不支持ASP页面的预编译(据我所知,x86不支持--aot=full),但不知怎么做的。我一直在等着看这是否只是一个侥幸,但自从我十天前提出这个问题以来,可能有十几次提交/部署都进行得很顺利,所以我想可以肯定地说它是有效的。

我也有一个类似的问题:

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: CS0006: Metadata file `/tmp/<DOMAIN/>/<username/>-temp-aspnet-0/5ed74d00/App_global.asax_34cccb99.dll' could not be found
/Default.aspx
编译错误
描述:编译服务此请求所需的资源时出错。请检查源文件并对其进行修改以修复此错误。
编译器错误消息:CS0006:找不到元数据文件`/tmp//-temp-aspnet-0/5ed74d00/App_global.asax_34cccb99.dll'
/Default.aspx
但这与预编译无关,只是我的用户名中有一个反斜杠。我使用“同样打开”登录到windows域,因此我的用户名是\而我的主目录没有反斜杠:/home/同样打开//。此差异或只是反斜杠本身导致mono在temp目录中找不到已编译的global.asax。如果仔细查看详细输出,您会发现out参数中的反斜杠\更改为正斜杠/:

dmcs /target:library /lib:"/home/likewise-open/<DOMAIN/>/<username/>/Documents/test9999/test9999/bin" /debug+ /optimize- /warn:4 /out:"/tmp/<DOMAIN/>\<username/>-temp-aspnet-0/5ed74d00/App_Web_17ca7bdd.dll" /r:"/usr/lib/mono/4.0/mscorlib.dll" /r:"/usr/lib/mono/gac/Microsoft.CSharp/4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll" /r:"/usr/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll" /r:"/usr/lib/mono/gac/System.Configuration/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll" /r:"/usr/lib/mono/gac/System.Web/4.0.0.0__b03f5f7f11d50a3a/System.Web.dll" /r:"/usr/lib/mono/gac/System.Data/4.0.0.0__b77a5c561934e089/System.Data.dll" /r:"/usr/lib/mono/gac/System.Web.Services/4.0.0.0__b03f5f7f11d50a3a/System.Web.Services.dll" /r:"/usr/lib/mono/gac/System.Xml/4.0.0.0__b77a5c561934e089/System.Xml.dll" /r:"/usr/lib/mono/gac/System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll" /r:"/usr/lib/mono/gac/System.EnterpriseServices/4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll" /r:"/usr/lib/mono/gac/System.IdentityModel/4.0.0.0__b77a5c561934e089/System.IdentityModel.dll" /r:"/usr/lib/mono/gac/System.Runtime.Serialization/4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll" /r:"/usr/lib/mono/gac/System.Xaml/4.0.0.0__b77a5c561934e089/System.Xaml.dll" /r:"/usr/lib/mono/gac/System.ServiceModel/4.0.0.0__b77a5c561934e089/System.ServiceModel.dll" /r:"/usr/lib/mono/gac/System.ServiceModel.Web/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Web.dll" /r:"/usr/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.dll" /r:"/usr/lib/mono/gac/System.Web.Extensions/4.0.0.0__31bf3856ad364e35/System.Web.Extensions.dll" /r:"/usr/lib/mono/gac/System.Data.DataSetExtensions/4.0.0.0__b77a5c561934e089/System.Data.DataSetExtensions.dll" /r:"/usr/lib/mono/gac/System.Xml.Linq/4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll" /r:"/usr/lib/mono/gac/System.ComponentModel.DataAnnotations/4.0.0.0__31bf3856ad364e35/System.ComponentModel.DataAnnotations.dll" /r:"/usr/lib/mono/gac/System.Web.DynamicData/4.0.0.0__31bf3856ad364e35/System.Web.DynamicData.dll" /r:"/usr/lib/mono/gac/System.Data.Linq/4.0.0.0__b77a5c561934e089/System.Data.Linq.dll" /r:"/usr/lib/mono/gac/System.Web.ApplicationServices/4.0.0.0__31bf3856ad364e35/System.Web.ApplicationServices.dll" /r:"/home/likewise-open/<DOMAIN/>/<username/>/Documents/test9999/test9999/bin/test9999.dll" /r:"/tmp/<domain/>/<username/>-temp-aspnet-0/5ed74d00/App_global.asax_34cccb99.dll"  /nowarn:0169 /d:DEBUG  -- "/tmp/<DOMAIN/>\<username/>-temp-aspnet-0/5ed74d00/App_Web_17ca7bdd_0.cs" 
dmcs/target:library/lib:“/home/open///Documents/test9999/test9999/bin”/debug+/optimize-/warn:4/out:”/tmp/\-temp-aspnet-0/5ed74d00/App\u-Web\u 17ca7bdd.dll”/r:“/usr/lib/mono/4.0/mscorlib.dll”/r:/usr/lib/mono/gac/Microsoft.CSharp/4.0.0.0.0.0\uu b03f5f7f1d50a/Microsoft.CSharp”/r:“/usr/lib/mono/gac/System/4.0.0.0_uuub77a5c561934e089/System.dll”/r:“/usr/lib/mono/gac/System.Configuration/4.0.0_uuuub03f5f7f11d50a3a/System.Configuration.dll”/r:/usr/lib/mono/gac/System.Web/4.0.0.0.0_uuuuuuuub03f7f11d50a3a3a/System.Web.dll”/r:”/usr:/lib/mono/gac/gac/System.Data/4.0.dll:/f50a50a50a50a5a/System.dll/usr/lib/mono/gac/System.Web.Services/4.0.0_uuB03F5F7F11D50A3A/System.Web.Services.dll”/r:“/usr/lib/mono/gac/System.Xml/4.0.0.0_uuB77A5C561934E089/System.Xml.dll”/r:”/usr/lib/mono/gac/System.Drawing/4.0.0.0.0.0_uuB03F5F11D50A3A/System.Drawing/r:”/usr/lib/mono/gac/System.EnterpriseServices/4.0.0_uuB03F5F7F11D50A3A/System.EnterpriseServices.dll”/r:“/usr/lib/mono/gac/System.IdentityModel/4.0.0.0_uuB77A561934E089/System.IdentityModel.dll”/r:”/usr:/lib/mono/gac/System.Runtime.Serialization/4.0.0.0.0_C561934E089/System.Runtime.dll:”/usr/lib/mono/gac/System.Xaml/4.0.0.0_uuub77a5c561934e089/System.Xaml.dll”/r:“/usr/lib/mono/gac/System.ServiceModel/4.0.0_uuuub77a5c561934e089/System.ServiceModel.dll”/r:/usr/lib/lib/mono/gac/System.ServiceModel.Web/4.0.0.0.0.0_uuu31bf3856ad364e35/System.ServiceModel.Web.dll:”/r:“/usr:/lib/lib/gac/Core/System/cmo/gac/Core/cmodel/cmodel/cmodel.dll:/b774.com/usr/lib/mono/gac/System.Web.Extensions/4.0.0_uuu31bf3856ad364e35/System.Web.Extensions.dll”/r:“/usr/lib/mono/gac/System.Data.DataSetExtensions/4.0.0.0_uuub77a561934e089/System.Data.datas.DataSetExtensions.dll”/r:”/usr/lib/mono/gac/System.Xml.Linq/4.0.0.0.0.0_uuuu:“/a56934e089/System.Xml.Xml:”lnq:/usr/lib/mono/gac/System.ComponentModel.DataAnnotations/4.0.0_uu31bf3856ad364e35/System.ComponentModel.DataAnnotations.dll”/r:“/usr/lib/mono/gac/System.Web.dynamicata/4.0.0.0_uuuuu31bf3856ad364e35/System.Web.dynamicata.dll”/r:”/usr/lib/mono/gac/System.Data.Linq/4.0.0.0.0.0.0.0_u/b77a56a534e35/System.dll:“/Linq:”/usr/lib/mono/gac/System.Web.ApplicationServices/4.0.0\uu 31bf3856ad364e35/System.Web.ApplicationServices.dll”/r:“/home/simily open///Documents/test9999/test9999/bin/test9999.dll”/r:“/tmp/-temp/-aspnet-0/5ed74d00/App\u global.asax\u 34cccb99.dll”/nowarn:0169/d:DEBUG——”/tmp/\-temp/\-aspnet-0/5ed74d0/App\f0web\7bu
因此:

/out:“/tmp/\-temp-aspnet-0/5ed74d00/App\u Web\u 17ca7bdd.dll
变成

/tmp/<DOMAIN/>/<username/>-temp-aspnet-0/5ed74d00/App_global.asax_34cccb99.dll
/tmp/-temp-aspnet-0/5ed74d00/App\u global.asax\u 34cccb99.dll
如果我将目录5ed74d00复制到/tmp/-temp-aspnet-0/中,应用程序将按预期工作


我花了将近2天的时间才看到这一点,所以希望我能帮助其他人回答这个问题。

这很奇怪,它似乎在试图编译视图,同时依赖于仍要生成的dll。您是否尝试过更新到mon的最新版本
/tmp/<DOMAIN/>/<username/>-temp-aspnet-0/5ed74d00/App_global.asax_34cccb99.dll