I understand that I can specify a number of pages in the application Initialisation section of the web.config to be run before the deployment slot is swapped. What I'd like to be able to do is to simulate logging into the App and then visiting a whole raft of pages so that the App is fully warmed up.
If you need to warm the caches for the site you could use the applicationInitialization
module to point an endpoint that you have setup that would warm the caches for you. This works well with the Auto Swap feature. A detailed description of how to do this is at How to warm up Azure Web App during deployment slots swap. The way you would configure the applicationInitialization
module is:
<system.webServer>
<applicationInitialization >
<add initializationPage="/youendpointToWarmCaches" hostName="youhostname"/>
</applicationInitialization>
<system.webServer>
That might do enough to meet your needs. If not, and you still need to make requests to the authenticated endpoints to warm up the app then applicationInitialization
module will not work as you point out. Using the module to point to your authenticated endpoints you will end up getting 401 or redirect responses.
Another option is to use the Swap with Preview Functionality. Again there is a great article describing how to use Slot Swap with Preview in detail.
The Swap with Preview feature loads the App and then applies the production settings without actually making the swap. You can then make requests to staged site to warm up the authenticated routes (be careful this is against production settings) . Once you are done warming/verifying you can make the actual swap. The worker process is not restarted and so you have a fully warmed app once the swap is complete.
The swapping can be automated with Powershell and be part of our your build process.
Note: Azure App Service Authentication won't work with Swap Preview.
Hope that helps!
© 2022 - 2024 — McMap. All rights reserved.