我知道我可以在 web.config 的应用程序初始化部分中指定要在交换部署槽之前运行的多个页面。我想做的是模拟登录到应用程序,然后访问一大堆页面,以便应用程序完全预热。
1 回答
如果您需要为站点预热缓存,您可以使用该applicationInitialization
模块指向您已设置的端点,该端点将为您预热缓存。这适用于自动交换功能。有关如何执行此操作的详细说明,请参阅如何在部署插槽交换期间预热 Azure Web App。您配置applicationInitialization
模块的方式是:
<system.webServer>
<applicationInitialization >
<add initializationPage="/youendpointToWarmCaches" hostName="youhostname"/>
</applicationInitialization>
<system.webServer>
这可能足以满足您的需求。如果没有,并且您仍然需要向经过身份验证的端点发出请求以预热应用程序,那么applicationInitialization
模块将无法正常工作,正如您所指出的那样。使用该模块指向您经过身份验证的端点,您最终将获得 401 或重定向响应。
另一种选择是使用具有预览功能的交换。再次有一篇很棒的文章详细描述了如何使用Slot Swap 和 Preview。
Swap with Preview 功能加载应用程序,然后应用生产设置而不实际进行交换。然后,您可以向暂存站点发出请求以预热经过身份验证的路由(注意这违反了生产设置)。完成加热/验证后,您可以进行实际交换。工作进程不会重新启动,因此一旦交换完成,您就有了一个完全预热的应用程序。
交换可以通过Powershell 自动进行,并成为我们构建过程的一部分。
注意:Azure 应用服务身份验证不适用于交换预览。
希望有帮助!