Force restart your Azure App service site and host

Photo by Markus Spiske on Unsplash

Sometimes your Azure App service host will need to be restarted. You can do this but it's hidden away in the Azure resource manager site. Here's how to find it!

Why restart the host

Sometimes your app service host can get into a broken state or you want make sure that it is in a fresh state.

For example I had to do this recently when trying to upgrade an App Services site to Node.js 14 and it failed because PM2 was missing on the App Service Linux container.

You might see errors like the following that the App service instance doesn't recover from

[error]Error: Failed to swap App Service 'YOUR_SITE' slots - 'staging' and 'production'. Error: ExpectationFailed - Cannot swap site slots for site 'YOUR_SITE' because the 'staging' slot did not respond to http ping. (CODE: 417)
[error]Error: Failed to swap App Service 'YOUR_SITE' slots - 'staging' and 'production'. Error: Conflict - Cannot modify this site because another operation is in progress. Details: Id: 45210a29, OperationName: SwapSiteSlots, CreatedTime: 5/20/2021 2:01:30 AM, WebSystemName: websites, SubscriptionName: , WebspaceName: YOUR_SITE, SiteName: ***, SlotName: staging, ServerFarmName: , GeoOperationId: (null) (CODE: 409)

Azure resource manager

Azure provides a nice ARM interface of all your resources at https://resources.azure.com.

If you work with Azure resources then it's worth getting familiar with this interface - you can use it to quickly extract ARM template details, you can easily update settings and fully manage the resources you have access to using the Azure Api through the website.

Find the App Service Resource

To find the app service resource you have to dig in to the tree menu on the left. The path is:

Subscriptions > YOUR_SUBSCRIPTION > resourceGroups > YOUR_RESOURCE_GROUP > providers > Microsoft.Web > sites > YOUR_SITE

and select the site name. Make sure you select the site name! You should see something like

{
  "id": "/subscriptions/...",
  "name": "YOUR_SITE",
  "type": "Microsoft.Web/sites",

Note if you are trying to restart a slot you need to go a step further in the tree:

Subscriptions > YOUR_SUBSCRIPTION > resourceGroups > YOUR_RESOURCE_GROUP > providers > Microsoft.Web > sites > YOUR_SITE > slots > YOUR_SLOT_NAME

Change the interface to edit mode

Click the big Edit button!

Edit button

How to turn off the site instance

Find the section below and change "Running" to "Stopped"

 "properties": {
    "name": "YOUR_SITE",
    "state": "Running",
    "hostNames": [
      "YOUR_SITE.azurewebsites.net"
    ],

 "properties": {
    "name": "YOUR_SITE",
    "state": "Stopped",
    "hostNames": [
      "YOUR_SITE.azurewebsites.net"
    ],

Turn off the App Services host

You have to find this setting and change it to true

    "scmSiteAlsoStopped": false,
    "scmSiteAlsoStopped": true,

Save

To save your changes click on the PUT button.