如何在使用虚拟目录时在临时插槽中预热Azure App Service,然后与生产交换

时间:2019-05-08 16:59:17

标签: azure azure-web-sites

我有一个带有暂存槽的Azure应用服务。我都设置为使用虚拟目录来包含许多网站。文件夹是客户端,服务器和旧版。我在生产和暂存槽上都设置了自定义域。

生产位的自定义域是

  • client.sitename.com
  • server.sitename.com
  • legacy.sitename.com

暂存槽的自定义域为

  • clientstaging.sitename.com
  • serverstaging.sitename.com
  • legacystaging.sitename.com

我已经更新了应用程序服务,以包括一个web.config文件来处理将导航请求导航到正确的目录,并运行一些代码来预热应用程序。预热代码完成后,将发送包含环境变量的电子邮件,这样我就可以知道已预热了哪个环境。变量位于项目本身中,因此未连接到应用程序服务上的变量。

当前生产版位的web.config包含以下内容

<applicationInitialization doAppInitAfterRestart="true" skipManagedModules="false">
    <add initializationPage="/primes/warmup" hostName="client.sitename.com" /> 
    <add initializationPage="/api/v1/primes/warmup?token=tokenId" hostName="server.sitename.com"/>
    <add initializationPage="/?initialise" hostName="legacy.sitename.com"/>      
</applicationInitialization>

当前临时插槽的web.config包含以下内容

<applicationInitialization doAppInitAfterRestart="true" skipManagedModules="false">
    <add initializationPage="/primes/warmup" hostName="clientstaging.sitename.com" /> 
    <add initializationPage="/api/v1/primes/warmup?token=tokenId" hostName="serverstaging.sitename.com"/>
    <add initializationPage="/?initialise" hostName="legacystaging.sitename.com"/>      
</applicationInitialization>

这一直有效,直到交换插槽为止。如果在插槽之后重新启动生产插槽,我将收到包含临时插槽中变量的电子邮件。生产环境中的web.config现在具有带有“ staging”的主机名,并且似乎要预热暂存插槽而不是生产插槽。

应用服务的生产时段有时会回收,因此应触发applicationInitialization并在该时段发生时对其进行预热。

有没有一种设置applicationInitialization的方法,使其可以同时在两个插槽中使用?

0 个答案:

没有答案
相关问题