我们正在使用 Mono (2.10) XSP4 网络服务器来托管在开放式嵌入式 Linux (ARM) 上运行的 ASP.Net MVC3 Web 应用程序。启动 XSP4 时,它需要几秒钟才能准备好并接受请求。到目前为止没有问题。
但是,当来自浏览器/网站访问者的第一个请求发出时,XSP4 会使用所有 CPU 大约 55 秒,直到网页(成功)显示在 webbrowser 中。这发生在每次启动/重新启动 XSP 之后。
我的第一个想法是,这是整个 Web 应用程序的即时编译。因此,我构建了一个仅包含二进制文件、.css、.js 和视图 (.cshtml) 的部署包。它起作用了,但仍然有很大的延迟。
然后我尝试使用 Visual Studio 预编译该 Web 应用程序(如某些 Mono 发行说明中所述)。该网站再次运行良好,但仍然存在巨大的延迟。
一些真正在我脑海中的问题:
- 当第一个浏览器请求进来时,有人知道 XSP 网络服务器在做什么吗?即使它是预编译的 Web 应用程序,这是否也是即时编译?
- 为什么每次重新开始后都会这样做?
- 通常可以以某种方式减少巨大的延迟吗?
- 是否可以减少巨大的延迟,使其仅在 Web 应用程序更新后的第一个浏览器请求上完成(在 XSP 的后续运行之间缓存)?
任何帮助/想法都会很棒。
更新:与此同时,我发现延迟是由 Mono / ASP.Net 编译器 dcms 构建并将 MVC3 razor 视图编译到 /tmp/root-aspnet.../ 中造成的,该视图映射到内存,因此不是持久的。我现在正在寻找一种方法来控制 XSP4 / Mono.WebServer / Mono-Asp.Net 存储这些编译文件的位置。如果有人熟悉这个,请告诉我;-)