相关疑难解决方法(0)

远程调试.NET Core Linux Docker容器 - "当前源与.dll中内置的版本不同"

  • 搬运工人
  • .NET Core 1.1
  • Visual Studio 2017
  • .NET核心调试器(clrdbg)

我收到以下错误:

"The breakpoint will not currently be hit. A copy of TokenController.cs was found in TSL.Security.Service.dll, but the current source code is different from the version built into the TSL.Security.Service.dll."
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我将逐步了解如何构建我的.NET Core Docker镜像并从此图像运行Container实例,然后使用Visual Studio 2017连接远程,我的Dockerfile.debug位于我的问题的底部:

  1. 在我的docker主机cd ~/repos/api.security//一个git存储库
  2. git pull //从git for .NET Core项目中提取最新代码
  3. dotnet restore
  4. dotnet publish //没有其他args与.pdbs一起发布
  5. docker build -t tsl.api.security.image.debug -f Docker.debug .
  6. docker run -d -p 8080:5000 -p 10222:22 --name=tsl.api.security.container.debug -t tsl.api.security.image.debug //在端口5000上的Container中运行并映射我的.NET Core Webapi到主机端口8080并将容器(端口22)中的ssh映射到主机上的端口10222 …

.net c# linux docker asp.net-core

14
推荐指数
1
解决办法
2396
查看次数

如何从Visual Studio调试在Linux Docker容器中运行的.NET Core应用程序

我有自己的手写Dockerfile/docker-compose文件.我从命令行启动容器.现在我想将VS2017(不是VSCode)连接到Docker(基于Linux)容器中的应用程序.它似乎应该是相当容易的任务,但我找不到任何有关如何执行此操作的信息.

我仔细阅读了指南https://github.com/Microsoft/MIEngine/wiki/Offroad-Debugging-of-.NET-Core-on-Linux---OSX-from-Visual-Studio.起初它看起来像我需要的 - 关于如何远程调试在Linux中运行的netcore应用程序的描述.但它只讲述了故事的一部分 - 如何通过SSH进行调试.刚刚提到Docker,但没有说明如何远程调试Docker中的应用程序.
我想这里应该没有太多具体的Docker,它只是在Docker中运行vsdbg并附加在这里.但显然这是一个非常常见的开发用例,并且奇怪的是没有关于此的好消息.

当然,还有VS Tools for Docker,我们可以轻松地在Docker容器中调试应用程序.但对我来说VS Tools for Docker非常糟糕.是的,他们一开始就无缝工作.但绝对不清楚幕后发生了什么.

看起来我们只是可以查看Docker的VSTools并尝试重现它.但这不是很明显.它为docker-compose(docker-compose.vs.debug.g.yml)添加了一个额外的"debug"yaml文件,它应该可以进行调试.我把那个yaml添加到我手写的docker-compose,运行Dockers但是如何附加VS?我获得了我的容器的IP,试图在该IP上找到一个远程调试器,并且4022 VS看不到任何东西.此外,由Tools for Docker创建的debug.yaml对于暴露4022端口没有任何意义,这是可疑的.

PS在Windows容器上找到了一个很好的指南 - https://github.com/riskfirst/debugging-aspnet-core-windows-docker

debugging remote-debugging visual-studio docker .net-core

10
推荐指数
1
解决办法
3327
查看次数