是否可以在已停止的IIS 6站点上预编译ASP.Net网站?

Man*_*rok 1 .net c# asp.net compiler-construction iis-6

我在IIS上有2个站点,一个是实时站点,另一个是仅在实时站点上进行维护时启动的站点.

在部署方案中,我停止实时站点和START维护站点,以便用户收到一条友好的消息,告知升级.

我唯一的问题是,当我启动现场网站时,它显然需要JIT,这可能需要3分钟.

在我向用户发布之前,有没有这个JIT呢?

编辑:只是为了澄清,这个网站是一个CMS,所以下面标记的答案适合我,因为只有1页编译.

谢谢

Dan*_*son 5

看起来你需要使用NGen ......

Native Image Generator(Ngen.exe)是一种可以提高托管应用程序性能的工具.Ngen.exe创建本机映像,这些映像是包含已编译的特定于处理器的计算机代码的文件,并将它们安装到本地计算机上的本机映像缓存中.运行时可以使用来自缓存的本机映像,而不是使用实时(JIT)编译器来编译原始程序集.

预编译网站以进行部署,使用固定名称,将解决方案部署到服务器,然后在bin中使用所有程序集

关于NGen的MSDN文章.

我应该补充一点,通过预先生成这样的本机代码,您可能会失去运行时基于当前系统性能(如内存和寄存器使用)执行的一些优化.这甚至可能导致网站运行速度比JIT更慢.Microsoft建议您在接近正常使用条件下的条件下在目标平台上尝试NGen和JIT方法.