177

我想在 IDE 中停止应用程序的第一天使用 Visual Studio 2012,应用程序仍在 IIS Express 上运行,我可以浏览和使用正在运行的应用程序,但现在我不能。如果我按下停止按钮,IIS 会立即关闭应用程序。因为我记得我没有对设置进行任何更改。我应该如何像第一天一样运行。

4

5 回答 5

349

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

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

于 2013-09-13T20:26:25.163 回答
87

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

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

编辑并继续选项 vs2013

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

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

如果您想使用“编辑并继续”或者您正在开发 Asp.net 5 站点(ASP.NET 5 项目在项目属性中没有“编辑并继续”复选框),您必须使用“Detech all”命令停止调试。

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

显然,在您再次开始调试之前,“编辑并继续”功能将不起作用。

在此处输入图像描述

于 2013-11-04T11:45:29.660 回答
64

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

正常的 IIS 工作进程也将被终止,但由于它曾经作为服务运行,它也会自动重新启动,因此您可以继续使用它而无需通过|> Debug或重新启动进程|> Start without debugging

截图供参考

将“编辑并继续”按钮添加到调试工具栏。

于 2013-01-17T17:43:28.340 回答
32

似乎自 Visual Studio 2015 Update 2 发布以来,公认的解决方案不再有效。

到目前为止,我发现的最简单的解决方案是通过从Debug菜单中选择“ Start without Debugging ”来启动项目。

于 2016-04-19T10:27:55.047 回答
5

这可能最好归类为另一种解决方法,但它对我有用。

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

从那时起,任何需要调试的东西,我通常都会附加到新的现有 iisexpress 进程中。虽然通过上下文菜单鼠标将使其无法启动,但它几乎与 F5 一样快,具有以下击键:

  • Shift-F6 构建当前项目或 Ctrl-Shift-B 构建整个解决方案(仅当您进行了更改时才需要这样做,但我认为我应该提及它,因为 F5 已经这样做了)。
  • Ctrl-Alt-P 打开附加到进程对话框

  • 键入“iis”将带您进入 iisexpress 流程

  • 按回车键,您已连接

如果你有不止一个 iisexpress 运行,最后一个启动的通常会出现在列表的顶部。另一种选择是移位选择并附加到所有这些。

这有许多 IMO 的优点。首先,它不会终止进程。其次,停止调试时浏览器窗口不会关闭。当我看到开发人员重复 7 个步骤来重现错误时,我感到很震惊,而他需要做的只是在现有浏览器窗口中按 F5 键,以便在连接调试器后重新发布。最后,我必须在附加到 nunit 时已经这样做了,所以我得到了更一致的体验。

于 2016-05-18T16:10:57.687 回答