【发布时间】:2019-07-05 03:19:27
【问题描述】:
我正在 Visual Studio 中对在 Linux docker 容器下运行的许多微服务进行 F5 调试。我知道容器是 Linux,因为
- Docker for Windows 在其菜单上显示切换到 Windows 容器
-
docker container inspect对我的容器显示"Platform": "linux"。
在没有对docker-compose 或dockerfile 文件进行任何明显更改的情况下,它“感觉”就像 ASP.NET 核心认为它在 Windows 环境中运行。看起来是 Visual Studio 造成的。
我得到了很多
- PlatformNotSupportedException
- NotSupportedException
- DirectoryNotFoundException
- DllNotFoundException
- 找不到或打开 PDB 文件
- realpath():参数无效
和
您只能将 Microsoft .NET Core 调试器 (vsdbg) 与 Visual Studio Code、Visual Studio 或 Visual Studio for Mac 软件 帮助您开发和测试您的应用程序。
这似乎是在没有任何警告的情况下开始的。我已经尝试了以下所有方法:
- 重启泊坞窗
- 重启
- 卸载/重新安装 docker
- 使用旧版本的代码库
似乎没有任何效果。
一些微服务似乎可以正常工作,只是速度较慢,因为到处都会抛出异常。不过,可能只是他们没有进行特定于平台的调用。
docker version 显示
Client: Docker Engine - Community
Version: 18.09.1
API version: 1.39
Go version: go1.10.6
Git commit: 4c52b90
Built: Wed Jan 9 19:34:26 2019
OS/Arch: windows/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.1
API version: 1.39 (minimum version 1.12)
Go version: go1.10.6
Git commit: 4c52b90
Built: Wed Jan 9 19:41:49 2019
OS/Arch: linux/amd64
Experimental: false
有没有人遇到过这种情况?有人知道解决办法吗?
【问题讨论】:
-
您不能至少分析其中一个异常以查看它是否表明您的代码中存在错误吗?
-
你确定当你按下 F5 时它会在 docker 容器中运行应用程序吗?可以在具有不同启动选项的项目属性中设置不同的调试配置文件,例如 IIS、IIS Express、Docker、项目或可执行文件。确保您使用正确的个人资料。
-
@AlexeyAndrushkevich,工具栏中显示的唯一配置文件是 Docker Compose。
-
@LexLi,虽然我没有分析所有,但它们都源自我的代码库之外的 .NET 代码。只有我的机器受到影响,因为我的其他几个同事没有这个问题。表面上是环境问题,但无法缩小范围。
标签: visual-studio docker asp.net-core containers docker-for-windows