ASP.NET Core Docker容器只在Visual Studio调试时响应。

4

在Visual Studio中从Web模板创建ASP.NET Core应用程序并单击“添加Docker支持”后,它可以在由Visual Studio启动的调试模式下正常运行。

但是,如果在Visual Studio中停止调试,则即使容器仍在运行且可以通过终端等方式进入,它也不再响应。端口仍在监听,但它就是无法工作了。

开始调试

enter image description here

enter image description here

enter image description here

enter image description here

停止调试

enter image description here

所有其他信息保持不变,没有任何迹象表明容器甚至知道 Visual Studio 已经停止。容器仍然可以访问:

enter image description here

映射的端口仍在监听,因此存在支持套接字的进程:

enter image description here

但是该网站已经无法使用:

enter image description here

Visual Studio正在做什么来使这个容器响应?它的文档在哪里?

有没有人验证过这个答案?我也遇到了完全相同的问题。我确实尝试了建议,可以在Visual Studio中不使用调试来运行。它确实会启动容器,因为你可以从日志中看到它正在初始化。但是,如果您从Docker桌面停止并重新启动容器,则回到初始状态。你只能通过Visual Studio来启动监听器。基本上,除非你从Visual Studio的Debug Attach模式或Start without Debugging模式开始,否则它无法运行。 - xstat
2个回答

1

显然,在构建调试时,Visual Studio会进行一些技巧处理,因此如果没有VS,图像将无法正常工作。如果使用docker build自行构建图像,则可以在Docker桌面版中正常工作。


0

你尝试过使用Ctrl+F5(不带调试启动)吗?同时在“工具-配置-容器”中更改设置,然后查找选项以消除关闭时的容器并将它们设为false。这使得我能够在VS22中不激活调试的情况下使用Docker运行我的asp页面。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接