当不可用时,IIS7预热一个AppPool

我已经build立了以下网站:

  • 升级网站 – DefaultAppPool – D:\网站\升级 – 没有主机头(绑定:80)
  • Beta网站 – BetaAppPool – d:\网站\ beta – beta.mysite.com(绑定:80)

安装程序启动后,Beta站点即可启动,但当禁用站点时,升级站点将接pipe。 如果这个网站偶然被closures的话,这也被做得更好。

部署顺序如下:

  1. 在IIS中禁用Beta Site网站(使升级页面可见)
  2. 拉下最新的变化
  3. 运行构build脚本
  4. 启用Beta Site
  5. 打开IE和预热网站。 (2分钟)

这是问题:

我需要一种方法来加热网站,而Beta Site没有启用,但我实际上无法击中该网站(因为它被禁用)。 我不希望该网站在可用之前启用,因为我们不希望我们的testing版用户体验与热身周期相关的长时间负载。

有一个非常酷的IIS模块,做了这样的事情,但它已经停产 ,不再支持。

有任何想法吗?


让我澄清一下。 当我的意思是禁用,我正在说的网站条目(端点如果你会),而不是应用程序池。

这个想法是在向用户提供更新页面的同时暖和网站。 一旦网站是温暖和良好的,那么它会翻转开关,以允许beta.mysite.com现在温暖的应用程序池服务。

我知道通过调用页面来预热脚本,但是如果端点closures,我不能调用页面(所以升级页面/站点仍然可以在脚本预热站点的同时为用户提供服务)

不能同时“温暖”和禁用。 所有“温暖”的意思是说,它已经经过了网站,并加载了代码各个阶段所需的.DLL。 如果第一步closures并更新它,则不能进行预热。否则,您的代码和页面会变得很糟糕!

您需要启动站点的pipe理员运行快速的VB或PowerShell脚本来调用页面并获取热身开始。 网上有很多热身示例脚本。 他们用各种URL调用网站,然后忽略返回。

既然你有一个非常清晰的部署,我会写一个启用testing脚本来调出网站,然后做热身打击。

更新

既然你澄清了,让我添加一个build议。 如果您只closures站点而不是应用程序池,则可以将第二个站点指向同一文件目录并使用同一个池,但将该站点configuration为只能在高端口(也许只在本地)。 然后,您可以触摸该网站上的url,并通过点击该隐藏网站来完成大部分热身操作。