加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 09:51:09 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试使用单声道2.10.8.1 w / fastcgi-mono-server4在我的 Linux服务器上部署在Mono / OSX上开发的ASP MVC项目 webapp总是正常启动,但随后我开始为各种URI获取随机的CS0006编译错误,一旦它们中断,它们将一直处于断开状态,直到我重新启动服务器应用程序.
我正在尝试使用单声道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),但不知怎的,它完成了这项工作.我等着看这是不是只是一个侥幸,但是自从我十天前问过这个问题以来,我可能已经很好了十几次提交/部署,所以我认为它可以说是有效的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读