我们正在使用单声道版本3.10.0(来自$ mono --version)和Nginx(1.6.2)以及mono-fastcgi-server4来托管在Debian jessie linux(ARM上运行的ASP.Net MVC3网络应用程序) - 覆盆子Pi)。
基本上我们似乎遇到了与此问题中描述的问题相同的问题: Huge delay on first browser-request to Mono XSP hosted web-application
当来自浏览器/网站访问者的第一个请求成为mono-fastcgi-server使用所有CPU时,它可以获得最多120秒,直到网页显示在webbrowser中。每次启动/重新启动网络服务器后都会发生这种情况。
据我所知,到目前为止,如果您在Windows服务器上使用IIS托管您的网站,这是非常正常甚至相同的。主要区别在于Windows服务器更快......
为了最大限度地减少启动时间,这是我已经尝试过的:
使用"发布网站"将我的剃须刀视图预编译到dll中Visual Studio中的功能。这项工作到目前为止,但似乎没有显着减少启动时间。
接下来我遇到的是 AOTING (提前编译)我的dll在bin文件夹中(参见http://www.mono-project.com/docs/advanced/runtime/docs/aot/)我使用了' mono --aot file.dll`预编译我的程序集。再次没有性能提升。
然后我发现你当然也可以 AOT你系统上的所有库(在这里找到:http://www.mono-project.com/docs/advanced/aot/)使用这些命令:
mono --aot /usr/lib/mono/1.0/mscorlib.dll
for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done
这花了相当长的时间在树莓上,但是 - 再次 - 结果相同。
我做错了什么或遗漏了一些明显的东西?
前面提到的问题的作者在他关于延迟的最后评论中说:
它是由生成和编译不能的剃刀视图引起的 但是要预先编译。这些文件被编译到/ tmp / ...这是 映射到嵌入式设备上的内存,因此丢失 重启。最糟糕的是,每次重新启动XSP网络服务器之后 文件将被编译到/ tmp的新子目录中。这条路 每次启动XSP时都会重新编译剃刀视图。
我想是的 无论使用XSP4,mono-fastcgi-server以及使用Apache时可能还有mod-mono,似乎对我来说都是一样的。 (有什么不足为奇,因为我认为它们都是基于XSP的 - 但也许我错了......)
现在提到的问题是从2011年开始...有没有人知道是否有解决方案让网络服务器使用这些预编译文件?
我感谢任何提示!