如何从主机的远程 devcontainer 中访问从 VSCode 调试器启动的 .NET Core webapi 服务
How to access .NET Core webapi service launched from VSCode debugger within remote devcontainer from host machine
当 dll 从远程 VSCode 的调试器启动时,我无法从主机访问容器化的 .NET 服务。
我可以访问服务
- 来自主机,当 dll 是 运行 使用 dotnet 命令手动
- 来自容器(使用 curl),当 dll 是 运行 手动或使用 VSCode 调试器
示例存储库:https://github.com/matrumz/Whosebug-devcontainers-ports-debug
手动时可以从主机访问运行
使用 VSCode 调试器启动时的结果
当使用 dotnet
命令启动程序时,应用程序侦听 http://[::]:80
,但调试器侦听 http://localhost:5000
。
上帝知道我这样做会破坏什么,但改变
"Whosebug_devcontainers_ports_debug": {
...
"applicationUrl": "https://localhost:5001;http://localhost:5000",
...
}
至
"Whosebug_devcontainers_ports_debug": {
...
"applicationUrl": "https://localhost:5001;http://0.0.0.0:5000",
...
}
解决了问题(目前只处理 HTTP)。
如果有人想告诉我为什么这行得通,我会洗耳恭听。在那之前:我会继续通过复制已经有效的东西来解决问题![=15=]
当 dll 从远程 VSCode 的调试器启动时,我无法从主机访问容器化的 .NET 服务。
我可以访问服务
- 来自主机,当 dll 是 运行 使用 dotnet 命令手动
- 来自容器(使用 curl),当 dll 是 运行 手动或使用 VSCode 调试器
示例存储库:https://github.com/matrumz/Whosebug-devcontainers-ports-debug
手动时可以从主机访问运行
使用 VSCode 调试器启动时的结果
当使用 dotnet
命令启动程序时,应用程序侦听 http://[::]:80
,但调试器侦听 http://localhost:5000
。
上帝知道我这样做会破坏什么,但改变
"Whosebug_devcontainers_ports_debug": {
...
"applicationUrl": "https://localhost:5001;http://localhost:5000",
...
}
至
"Whosebug_devcontainers_ports_debug": {
...
"applicationUrl": "https://localhost:5001;http://0.0.0.0:5000",
...
}
解决了问题(目前只处理 HTTP)。
如果有人想告诉我为什么这行得通,我会洗耳恭听。在那之前:我会继续通过复制已经有效的东西来解决问题![=15=]