You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

调试结束后IIS Express无法停止的问题排查求助

解决VS2017停止调试后IIS Express不自动停止的问题

我之前在VS2017调试ASP.NET Core项目时也碰到过一模一样的问题——停止调试后IIS Express死活不自动关掉,折腾了好一阵才找到几个有效的解决方向,你可以挨个试试:

  • 检查Web项目调试相关设置
    打开Tools -> Options -> Debugging -> Web Projects,确认以下两个选项是否已勾选:

    • Stop debugger when browser window is closed
    • Close browser when debugging stops
      VS版本更新后,这些配置偶尔会被重置,重新勾选后再测试看看。
  • 重置IIS Express配置
    以管理员身份打开命令提示符,运行以下命令重置IIS Express的配置文件,修复可能存在的配置损坏问题:

    "%ProgramFiles(x86)%\IIS Express\iisexpress.exe" /reset
    
  • 检查项目调试属性
    右键你的ASP.NET Core项目,选择属性 -> 调试

    1. 确认Launch选项设置为IIS Express
    2. 检查是否勾选了Launch browser,如果未勾选,调试停止时IIS Express可能收不到终止信号;
    3. 若项目启用了SSL,尝试暂时关闭Enable SSL选项,测试是否是SSL配置导致进程挂起。
  • 清除VS调试缓存
    完全关闭Visual Studio,删除以下两个目录的内容,然后重启VS:

    • %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\15.0_xxxx\ComponentModelCachexxxx是你的VS实例唯一标识,目录名类似15.0_abcdef12
    • %USERPROFILE%\AppData\Local\Temp\VSDebugger
      缓存文件损坏经常会引发VS调试相关的异常。
  • 修复Visual Studio安装
    打开VS Installer,找到你的VS2017实例,点击Modify后选择Repair。版本更新过程中可能出现组件安装不完整的情况,修复后能解决不少隐性问题。

  • 检查ASP.NET Core托管模式
    打开项目根目录下的web.config,找到<aspNetCore>节点,查看hostingModel属性:
    如果设置为OutOfProcess,尝试改为InProcess(ASP.NET Core 2.x在.NET Framework 4.6.1上支持该模式),部分情况下进程外托管会导致IIS Express无法自动终止。

  • 应急方案:手动结束进程
    如果以上方法暂时无效,打开任务管理器,找到iisexpress.exe进程(注意可能有多个实例),右键选择结束任务,可以临时解决进程残留的问题。

内容的提问来源于stack exchange,提问作者Joel

火山引擎 最新活动