asp.net – 单声道随机CS0006编译错误w / fastcgi-mono-server4

我正在尝试使用单声道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

从1月开始有a related thread,但问题和答案似乎都是mod_mono特定而且手工波浪状.任何人都有任何关于尝试调试/解决/解决此问题的建议?它变得非常令人沮丧.特别是,是否有任何“不支持”的解决方法,我可以从我的Windows Server计算机复制一些东西,使用MS实现而不是错误的单声道?

(我也是filed a bug report.)

解决方法

由于错误似乎是Mono JIT试图编译不存在的临时文件的问题,我花了几天尝试不同的方法解决这个问题(vs解决它).一个有效的解决方案是在Windows上使用aspnet_compiler创建一个二进制版本,可以在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),但不知怎的,它完成了这项工作.我等着看这是不是只是一个侥幸,但是自从我十天前问过这个问题以来,我可能已经很好了十几次提交/部署,所以我认为它可以说是有效的.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....