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


174

当我想在IDE中停止应用程序时,我正在使用Visual Studio 2012,但该应用程序仍在IIS Express上运行,我可以浏览并使用正在运行的应用程序,但现在不能。IIS如果我按停止按钮,则立即关闭应用程序。由于我记得我没有对设置进行任何更改。我应该如何做与开始的第一天一样。


1
尝试使用“在浏览器中查看”而不是“播放”。您是否更改了默认浏览器?IE会自动停止,Chrome则不会。
Emanuele Greco 2013年

不,我正在使用FF,但是有时我需要调试该应用程序。
saber 2013年

我认为这与IIS Express有关。
2013年

1
除了单击停止按钮,您还可以在“调试”菜单中使用“全部分离”。
jessehouwing 2013年

1
它从正在调试的进程中分离了调试器,但没有终止正在运行的进程。
jessehouwing 2013年

Answers:


346

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

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


3
我可以确认这已为我解决了该问题。
Maxime Rouiller 2013年

52
这有效!右键单击您的项目>单击属性>选择左侧的“ Web”选项卡>取消选中“启用编辑并继续”复选框。
2013年

7
有用。在Visual Studio 2013中,打开“工具->选项”,在树中选择“调试->编辑并继续”,然后取消选中“启用编辑并继续”框。
Renzo Ciot 2013年

3
您可以在此处详细了解此功能:blogs.msdn.com/b/webdev/archive/2013/07/11/…–
gor

5
不,这是一个糟糕的解决方案-请参阅下面@jessehouwing发布的正确解决方案。
Josh M.

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进程分离,而不关闭它。

显然,“编辑并继续”功能要等到再次开始调试后才起作用。

在此处输入图片说明


一幅图片值得一千个单词:D
giammin

64

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

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

屏幕截图以供参考

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


3
实际上,这更接近于真正的答案。“编辑并继续”选项是一个功能。将调试跟踪器附加和分离到侦听过程是此处讨论的重点,无论单击停止是终止侦听过程还是简单地与它分离..当然也可以重新连接到它。
Brett Caswell 2014年

@jcmcbeth它确实适用于IIS Express。。我可能看不到它不起作用。IIS Express进程就是这样,它们自己的独立进程。但是该进程不依赖于附加的调试器运行,而是您的应用程序或Web服务器需要访客/用户代理/客户端才能在proc中运行
Brett Caswell 2014年

1
@jcmcbeth,当您在谈论功能支持和设置时,在Q&A网站上说这很奇怪。这不是接受还是离开场景。你说,它并没有出现与IIS快递的工作。是的
Brett Caswell 2014年

1
VS 2015 RC for ASP.NET 5项目中不存在“启用编辑并继续”复选框,因此如果要对这些项目使用IIS Express,则应采用这种方法。
Tomek

7
这是VS 2015 Update 2如何通过从“项目” Web选项卡中删除“编辑并继续”来更改IIS行为的答案。
Robharrisaz 2016年

32

自Visual Studio 2015 Update 2发行以来,已接受的解决方案似乎不再起作用。

到目前为止,我找到的最简单的解决方案是通过从“调试”菜单中选择“开始而不调试”来启动项目。


1
听起来您在谈论VS2015。
乍得·卡里什

该死,我只是遇到了这个问题,并就此发布了问题。是否有解决此问题的已知解决方法-除了将您的快捷方式重新绑定到“开始时无需调试”和“分离”而不是“停止”之外?
nikib3ro

1
他们说,他们在下次更新修复它,在此期间,你可以使用另一个技巧是按CTRL + F5启动网站没有调试:connect.microsoft.com/VisualStudio/feedback/details/2562576/...
mattmanser

5

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

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

从那时起,任何需要调试的事情,我通常都会附加到新的现有iisexpress流程上。尽管通过上下文菜单进行鼠标移动将使其成为一个入门,但通过以下按键操作,其速度几乎与F5一样快:

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

  • 输入“ iis”将使您进入iisexpress流程

  • 按下Enter键,您将依恋

如果您有多个运行的iisexpress,则最后一个启动的iisexpress通常会显示在列表的顶部。另一个选择是对所有它们进行移位选择并附加。

IMO具有许多优势。首先,它不会终止该过程。其次,停止调试时不会关闭浏览器窗口。当我看到开发人员重复执行7个步骤来重现错误时,这使我感到震惊,而他所要做的只是在现有浏览器窗口中按F5键,以便在连接调试器后重新发布。最后,连接到nunit时必须已经执行此操作,因此可以获得更一致的体验。


感谢您忘记了“ Ctrl-Alt-P打开附加到过程对话框”
Tomas Hesse
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.