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