IIS 8 - 无需停机即可初始化应用程序并部署网站

IIS 8 - 无需停机即可初始化应用程序并部署网站

我已经为一个大型网站设置了应用程序初始化,但是网站初始化后用户才能访问它,还需要等待很长时间。这个网站很大,而且浏览量的汇总是个问题。

有没有办法在不给用户造成任何停机时间的情况下“预热”网站。看来应用程序初始化在一定程度上可以做到这一点,但如果我再次部署网站,让 IIS 在应用程序初始化启动时继续在当前进程中运行,然后移交给新进程,效果会更好。这是它应该做的吗?

有没有其他方法可以解决这一困境?我们尝试使用以下方法预编译视图:https://github.com/RazorGenerator/RazorGenerator但遇到了一些嵌套视图的问题。

答案1

有很多推荐的方法可以解决这个问题,其中很多方法似乎您已经找到了。最终,对于 IIS,最好的选择是使用多台带有负载平衡器的计算机。然后,管理员或负载平衡器配置可以确定应在什么条件下使用每台服务器。此解决方案的额外好处是您可以免受 Web 服务器硬件故障的影响,并且还可以提高可扩展性。也可以使用软件负载平衡器(例如,Windows 服务器版本附带的 Microsoft NLB),但如果您想要在维护期间自动删除服务器,则可能需要一些编程和外部控制器。

答案2

我们按照以下方式进行:

  1. (最简单)一台服务器,一个应用程序,带有应用程序初始化。部署后,立即发送蜘蛛模式的 wget 来访问从主页到第 3 级的所有服务器页面。这不会给我带来如此精彩的 15 秒中断(通常,网站速度很慢或显示 App_offline 页面长达 3 分钟),但仍然 - 部署后,我们拥有良好的应用程序,所有页面都在缓存中。
  2. (稳定性更好)负载均衡器后面有 2 个或更多服务器(Microsoft NLB 可以,但任何其他服务器都可以)。部署前,每台服务器都关闭 LB,然后启动部署,部署完成后,部署到这台特定的服务器 - 服务器上的蜘蛛模式下的 wget 访问所有页面,服务器返回 LB。

相关内容