停止调试后能否使ASP.NET Core网站保持运行状态?

时间:2019-03-19 23:34:58

标签: asp.net visual-studio asp.net-core

我是ASP.NET Core的新手,并且缺少我经常使用的一项功能。

设置新的ASP.NET MVC项目(Core之前)时,我将打开项目属性,然后从“ Web”选项卡中取消选中“编辑并继续”复选框。这样,我可以运行我的项目,在浏览器中浏览它,停止在VS中进行调试,然后它将继续运行。

这意味着我可以进行更改,重新编译和重新加载页面,而不必再次开始调试。除非我真的需要中断代码,否则这比每次更改后启动新的调试会话要快得多。

这可以在ASP.NET Core中完成吗?我还没有找到办法。

3 个答案:

答案 0 :(得分:9)

编辑网站项目的属性(在解决方案资源管理器中右键单击并选择 Properties ),然后选择右侧的 Debug 选项卡。

Web服务器设置下,将托管模型更改为进程外

enter image description here

现在,当调试停止时,网站应继续在IIS Express中运行。

注释:

  • 在Visual Studio 2017和Visual Studio 2019中测试
  • 如果您想知道的话,VS2017的默认托管模型是“处理中”。
  • 是否在“工具”>“选项”>“调试”中选择了“启用编辑并继续”似乎没有什么不同。

答案 1 :(得分:2)

如果要在应用程序运行时对其进行编辑,则必须在不调试的情况下运行它(ctrl + F5)。这样做的重点是,您可以使用.net核心服务,例如浏览器链接(在开发模式下启用),实际上,您可以同时在许多浏览器中打开应用。除非您专门关闭它,否则您的应用程序将运行,例如,通过iis express关闭它。它使用信号r保持连接,但是如果您对数据库代码进行了某些更改(例如,对数据库代码进行更改),则必须再次启动它以查看更改。它非常轻巧,因此您不必通过iis关闭应用程序,只需重新输入ctrl和f5即可重新启动。

请记住,您的asp.net核心应用附带了自己的网络服务器kestrel。因此,您也可以不使用iis来运行它。

在调试模式下,目的是分析您的应用程序,例如,通过在执行停止的地方设置断点,以便您查看堆栈。这与不进行调试有所不同,因为这样做的目的不是即时更改应用程序,因为那样做是没有意义的。您正在测试当前版本,在调试模式下对其进行更改可能会掩盖其他缺陷等。

答案 2 :(得分:1)

您可以从命令行启动Kestel并添加watch命令。在您的项目文件夹中运行命令:

0.00.

每次在Visual Studio中保存文件时,手表都会自动重新启动Web服务器,并且页面将显示您所做的更改。

您还可以向dotnet watch run 添加配置文件,并使用Ctrl-F5或Debug> Start Without Debugging启动配置文件。

launchSettings.json

最后,无论如何对我来说,您可以将其添加到Visual Studio工具中。然后,您可以在任何正在处理的项目中使用它。

“工具>外部工具...”

enter image description here