【问题标题】:Can I keep an ASP.NET Core web site running after stopping debugging?停止调试后能否保持 ASP.NET Core 网站运行?
【发布时间】:2019-08-10 14:22:56
【问题描述】:

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

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

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

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

【问题讨论】:

  • 开始不调试(ctrl +F5),而不是调试。
  • @JohanHerstad 有趣,根据我对以前版本的 ASP.NET 的经验,我最初认为你的评论是错误的,但昨晚在书中发现了这一点,我只是尝试了一下,它效果很好!请您添加它作为答案,并解释为什么它与以前的版本不同,我会接受它。

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


【解决方案1】:

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

Web 服务器设置 下,将 Hosting Model 更改为 Out of Process

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

注意事项:

  • 在 Visual Studio 2017 和 Visual Studio 2019 中测试
  • VS2017 的默认托管模型是“In Process”,以防您想知道。
  • 无论您是否在“工具”>“选项”>“调试”中选择了“启用编辑并继续”,似乎都没有区别。

【讨论】:

  • 这太棒了!比其他建议容易得多。非常感谢。
【解决方案2】:

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

dotnet watch run

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

您还可以向您添加一个配置文件 launchSettings.json 并使用 Ctrl-F5 或 Debug > Start without Debugging 启动配置文件。

"Dotnet Watch": {
  "executablePath": "C:\\Program Files\\dotnet\\dotnet.exe",
  "workingDirectory": "$(ProjectDir)",
  "commandLineArgs": "watch run",
  "launchUrl": "https://localhost:5001;http://localhost:5000",
  "environmentVariables": {
    "ASPNETCORE_ENVIRONMENT": "Development"
  }
}

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

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

【讨论】:

  • 谢谢,我有点让它工作了,但不得不使用端口号。虽然有点痛苦,为什么我们不能像以前那样做呢?
【解决方案3】:

如果您想在应用程序运行时对其进行编辑,您必须在不进行调试的情况下运行它 (ctrl +F5)。这样做的目的是让您可以使用 .net 核心服务,例如浏览器链接(在开发模式下启用),这实际上让您可以同时在多个浏览器中打开您的应用程序。您的应用程序将运行,除非您特别关闭它,例如通过 iis express 关闭它。它使用信号 r 来保持连接,但是如果您进行某些更改,例如对数据库代码进行更改,则必须重新启动它才能看到更改。它非常轻量级,所以你不必通过iis关闭应用程序,只需重新输入ctrl和f5即可重新启动。

请记住,您的 asp.net 核心应用程序带有它自己的网络服务器 kestrel。所以你也可以在没有 iis 的情况下运行它。

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

【讨论】:

  • 谢谢你,很好的解释!
猜你喜欢
  • 2017-09-04
  • 2019-04-28
  • 2018-01-10
  • 1970-01-01
  • 2014-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多