根据站点名称停止IIS Express过程

时间:2018-08-10 11:14:01

标签: sharepoint iis-express pid

该网站正在运行,有3个单独的网站在IIS上运行。 当我对特定库进行更改时,我需要使用它来重新启动站点。现在,我的方法是手动右键单击系统任务栏中的IIS Express图标,然后单击“停止站点”,然后执行调试。

我想使该零件自动运行,所以当我开始调试时,它将停止该特定站点。 如果我不停止它,它将仅重用当前正在运行的站点,但是如果停止它,则它将重新启动它。

事件可能吗?我知道如何找到PID,但没有得到PID后面的站点名称。

1 个答案:

答案 0 :(得分:2)

我将此脚本放在PowerShell中:

$site = 'Webapplication' # replace this by your site name (not case sensitive)
$process = Get-CimInstance Win32_Process -Filter "Name = 'iisexpress.exe'" | ? {$_.CommandLine -like "*/site:`"$site`"*" }
if($process -ne $null)
{
    Write-Host "Trying to stop $($process.CommandLine)"
    Stop-Process -Id $process.ProcessId
    Start-Sleep -Seconds 1 # Wait 1 second for good measure
    Write-Host "Process was stopped"
} else
{
   Write-Host "Website was not running"
}
  • 修改第一行以将站点名称替换为您的站点名称。保存这个 项目文件夹(不是解决方案文件夹)上的文件名为stopiis.ps1。
  • 现在,在解决方案资源管理器上,右键单击并选择属性
  • 在左侧,选择“构建事件”
  • 将其放在“构建前事件命令行”上,这样它将在编译之前运行:

    echo powershell-文件“ $(ProjectDir)stopiis.ps1”

    powershell-文件“ $(ProjectDir)stopiis.ps1”

Build Action

  • 注意:您不需要在管理模式下运行Visual Studio,因为IISExpress.exe在您的帐户下运行