我有一个带有暂存槽的Azure应用服务。我都设置为使用虚拟目录来包含许多网站。文件夹是客户端,服务器和旧版。我在生产和暂存槽上都设置了自定义域。
生产位的自定义域是
暂存槽的自定义域为
我已经更新了应用程序服务,以包括一个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的方法,使其可以同时在两个插槽中使用?