Asp.net mvc 3 使用Nginx托管的web应用程序首次向mono-fastcgi-server4发出浏览器请求时出现巨大延迟
我们正在使用mono版本3.10.0(来自$mono--version)、Nginx(1.6.2)和mono-fastcgi-server4来托管一个ASP.Net MVC3 web应用程序,该应用程序运行在Debian jessie linux(ARM-Raspberry Pi)上Asp.net mvc 3 使用Nginx托管的web应用程序首次向mono-fastcgi-server4发出浏览器请求时出现巨大延迟,asp.net-mvc-3,nginx,mono,xsp,fastcgi-mono-server,Asp.net Mvc 3,Nginx,Mono,Xsp,Fastcgi Mono Server,我们正在使用mono版本3.10.0(来自$mono--version)、Nginx(1.6.2)和mono-fastcgi-server4来托管一个ASP.Net MVC3 web应用程序,该应用程序运行在Debian jessie linux(ARM-Raspberry Pi)上 mono --aot /usr/lib/mono/1.0/mscorlib.dll for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done
mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done
基本上,我们似乎遇到了与此问题中描述的相同的问题:
mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done
当浏览器/网站访问者发出第一个请求时,mono fastcgi服务器将使用所有CPU,最多持续120秒,直到网页显示在webbrowser中。这发生在每次启动/重新启动Web服务器之后
mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done
据我所知,到目前为止,这是很正常的,如果你的网站是用IIS托管在windows服务器上,情况也一样。主要区别在于Windows服务器的速度要快得多
mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done
为了尽量缩短启动时间,我已经尝试过:
mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done
mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done
mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done
mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done
梅·覆盆子花了相当长的时间,但同样的结果mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done
我是做错了什么还是遗漏了一些明显的东西
mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done
上述问题的作者在最后一次关于延迟的评论中说:
mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done
它是由生成和编译razor视图引起的,这些视图不能
然而,这些数据需要预先编译。这些文件被编译成/tmp/。。。那是
映射到嵌入式设备上的内存,因此在
重新启动。更糟糕的是,每次重新启动XSP Web服务器后
文件将被编译到/tmp的新子目录中。这边
每次启动XSP时都会重新编译razor视图
mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done
我想是的
无论使用XSP4、mono fastcgi服务器,还是在使用Apache时使用mod mono,我的情况似乎都是一样的。(这并不奇怪,因为我认为它们都是基于XSP的——但也许我错了……)
mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done
现在提到的问题是从2011年开始的……有人知道有没有解决方案让Web服务器使用这些预编译文件吗
mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done
我感谢你的任何暗示 这里的asp mvc4和mono 3.12.1也一样。。。你最终解决了这个问题吗?没有。最终的“解决方案”是切换到node.js。工作非常好…很高兴知道,所以你完全避免了asp.net,对吗?是的…这非常令人伤心,因为我们已经用Entitfy Framework和Postgresql安装了一个运行良好的系统。但由于客户的要求,我们不得不换成另一种技术。
mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done