我在IIS上有2个站点,一个是实时站点,另一个是仅在实时站点上进行维护时启动的站点。
在部署方案中,我停止实时站点和START维护站点,以便用户收到一条友好的消息,告知升级。
我唯一的问题是,当我启动现场网站时,它显然需要JIT,这可能需要3分钟。
在我向用户发布这个JIT之前,有没有这个JIT?
编辑:只是为了澄清一下,这个网站是一个CMS,所以下面标记的答案对我来说很有用,因为只有一页要编译。
由于
答案 0 :(得分:5)
看起来你需要使用NGen ......
原生图像生成器(Ngen.exe) 是一个改善的工具 托管应用程序的性能。 Ngen.exe创建本机映像 是包含已编译的文件 特定于处理器的机器代码,以及 将它们安装到本机映像中 缓存在本地计算机上。该 运行时可以使用来自的本机映像 使用即时缓存来缓存 (JIT)编译器编译原始 组装
预编译网站以进行部署,使用固定名称,将解决方案部署到服务器,然后在bin中使用所有程序集
我应该补充一点,通过预先生成这样的本机代码,您可能会失去运行时基于当前系统性能(如内存和寄存器使用)执行的一些优化。这甚至可能导致网站运行速度比JIT更慢。 Microsoft建议您在接近正常使用条件下的条件下在目标平台上尝试NGen和JIT方法。
答案 1 :(得分:2)
我能想到的唯一方法是更改已停止站点上的绑定,启动它,运行页面,应用绑定,关闭维护站点并启动实时站点。
答案 2 :(得分:0)
我不相信有任何开箱即用的东西可以做到这一点。事实上,几个月前他们刚刚发布的IIS7 warmup module基本上只是爬行并点击你的页面一次“热身”。
如果我是你,我会写一个小程序来制作每页的WebRequests。可能会有一个第三方工具可以快速轻松地完成这项工作,所以它仍然是一个很好的问题......
答案 3 :(得分:0)
您可以使用aspnet_compiler.exe预编译您的网站。您可以从命令行使用它,也可以从nant脚本中调用它。
[aspnet_compiler] [1]
[1]:http://msdn.microsoft.com/en-us/library/ms229863%28VS.80%29.aspx />