Terminate w3wp.exe process without stopping website
Published Apr 01 2019 05:19 PM 5,718 Views
Microsoft
First published on MSDN on Jun 20, 2018


Here is a quick way to terminate w3wp.exe process in Azure App Service Website without stopping the whole website.

Note : Azure AppService website can run on multiple instances and there is another w3wp.exe process called SCM running on each instance (we shouldn’t kill this process). So we just have to get list of all instances running the website using Get-AzureRMResource cmdlet. On each instance, we need to get list of processes running using same Get-AzureRMResource cmdlet. Next, we need to check if this process is w3wp.exe process and see if the SCM property is true. Last step is using Remove-AzureRMResource to terminate the process.

Azure Resource Explorer is the best tool that can help us to pick the right PowerShell cmdlet to use and what parameters to pass. Just click on PowerShell tab in the resource explorer as shown below.






[code language="powershell"]

Login-AzureRmAccount

$resoureGroupName = "wabac"
$websiteName = "wabacblue"


$instances = Get-AzureRmResource -ResourceGroupName $resoureGroupName `
-ResourceType Microsoft.Web/sites/instances `
-ResourceName $websiteName `
-ApiVersion 2018-02-01


foreach($instance in $instances)
{
$instanceName = $instance.Name

Write-Host "Site Instance Name : " $instanceName

$processes = Get-AzureRmResource -ResourceGroupName $resoureGroupName `
-ResourceType Microsoft.Web/sites/instances/processes `
-ResourceName $websiteName/$instanceName `
-ApiVersion 2018-02-01

foreach($process in $processes)
{
$exeName = $process.Properties.Name
Write-Host "`tEXE Name : " $exeName

if($exeName -eq "w3wp")
{
$processId = $process.Properties.id
Write-Host "`t`tProcess ID : " $processId

$processDetails = Get-AzureRmResource -ResourceGroupName $resoureGroupName `
-ResourceType Microsoft.Web/sites/instances/processes `
-ResourceName $websiteName/$instanceName/$processId `
-ApiVersion 2018-02-01

Write-Host "`t`tSCM Value : " $processDetails.Properties.is_scm_site

if($processDetails.Properties.is_scm_site -ne $true)
{
Write-Host "`t`t`tNot a SCM Process : " $process.Properties.Name

$deleted = Remove-AzureRmResource -ResourceGroupName $resoureGroupName `
-ResourceType Microsoft.Web/sites/instances/processes `
-ResourceName $websiteName/$instanceName/$processId `
-ApiVersion 2018-02-01 -Force

if($deleted -eq $true)
{
Write-Host "`t`t`t`tW3wp process killed" -ForegroundColor Green
}
else
{
Write-Host "`t`t`t`tFailed to kill W3wp process" -ForegroundColor Red
}
}
}
}
}




[/code]
Version history
Last update:
‎Aug 24 2020 12:38 PM
Updated by: