7

我知道我可以在 web.config 的应用程序初始化部分中指定要在交换部署槽之前运行的多个页面。我想做的是模拟登录到应用程序,然后访问一大堆页面,以便应用程序完全预热。

4

1 回答 1

0

如果您需要为站点预热缓存,您可以使用该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 应用服务身份验证不适用于交换预览。

希望有帮助!

于 2016-02-18T14:49:26.067 回答