IISExpress 在停止 Web 应用程序后立即关闭正在运行的站点

我使用 Visual Studio 2012的最初几天,当我想在 IDE 中停止应用程序时,应用程序仍然在 IIS Express 上运行,我可以浏览和处理运行的应用程序,但现在我不能。如果我按下停止按钮,立即关闭应用程序。自从我记得我没有做任何改变设置。我该怎么做才能像第一天一样跑步。

73573 次浏览

您可以使用 Debug 菜单中的 Detach all菜单项,而不必点击 (X) STOP按钮。主要区别在于,stop 按钮将终止当前正在调试的任何进程,而 DetachAll 将断开调试器与进程的连接,但不会终止它们。

正常的 IIS 辅助进程也会被终止,但是由于它以前是作为服务运行的,所以它也会自动重新启动,因此您可以继续使用它,而不必通过 |> Debug|> Start without debugging重新启动进程。

参考截图

Adding 'Edit and Continue' button to debugging toolbar.

我最近也遇到过类似的情况,当我停止调试后,IIS Express 突然停止了。这是在我打开 “启用编辑并继续”之后发生的。因此,如果禁用此选项,您将看到即使在停止调试之后,IISExpress 仍在运行。

右键单击项目 > 单击属性 > 选择左边的“ Web”选项卡 > 取消选中 Enable Edit and Continue复选框。

在 VS2010和 VS2012中,在创建新的 Web 应用程序项目时,默认情况下禁用编辑和继续选项。在 VS2013中,它是默认打开的。

您可以在 Web 项目的属性窗口的 Web 选项卡中找到此选项。

edit and continue option vs2013

打开“启用编辑并继续”后,VS 调试器将在 IISExpress 中启动 Web 应用程序。停止调试时,IISExpress 也将关闭。有了这种行为,您将看到 IIS Express 系统托盘在调试期间显示,并在调试后消失。当启用“启用编辑并继续”选项时,此行为与 VS2012中相同。

如果您在开发过程中不需要“编辑并继续”功能 ,并且希望 IIS Express 在调试会话之后保留,您可以简单地关闭“启用编辑并继续”选项

I如果你想使用“编辑并继续”或者你正在开发一个 Asp.net 5站点(ASP.NET 5项目在项目属性中没有“编辑并继续”复选框) 你必须使用“全面侦查”命令停止调试。

调试器将与 iis 进程分离,而不关闭它。

显然,“编辑并继续”功能在重新开始调试之前不会工作。

enter image description here

自从 VisualStudio2015Update2发布以来,这个被接受的解决方案似乎不再有效。

到目前为止,我发现的最简单的解决方案是通过从 调试菜单中选择“ 无需调试即可启动”来启动项目。

这可能是另一种解决方案的最佳归类,但它适合我。

我通常第一次使用“浏览器中的视图”上下文菜单(或 CTRL-Shift-W)来启动项目。

从那时起,任何需要调试的东西,我通常都会附加到新的现有 iisExpress 进程。虽然通过上下文菜单进行鼠标操作会使这一步无法启动,但是通过以下按键操作,它的速度几乎与 F5一样快:

  • Shift-F6构建当前项目,或者 Ctrl-Shift-B 构建 整个解决方案(只有在您进行了更改但我 我想我应该提到它,因为 F5已经这样做了)。
  • Ctrl-Alt-P 打开连接到进程对话框

  • 然后输入“ iis”将使您转到 iisExpress 进程

  • 点击回车,你就连上了

如果您有多个 iisExpress 运行,最后一个启动的通常会出现在列表的顶部。另一种选择是 shift-select 并附加到所有这些文件。

这有很多优点 IMO。首先,它不会终止流程。其次,停止调试时浏览器窗口未关闭。当我看到一个开发人员重复7个步骤来重现一个 bug 时,我感到非常震惊,他所需要做的就是在现有的浏览器窗口中点击 F5,然后在调试器连接后重新发布。最后,我已经做到这一点时,附加到 nunit,所以我得到了一个更一致的经验。