Мне удалось отладить приложение asp .net core 3.1 в дистрибутиве Ubuntu WSL-2 (в Windows 10), используя файл для создания докеров, благодаря этому Руководство по сравнению с кодом
Но учитывая, что мы запускаем контейнер с помощью команды docker-compose up
, а затем подключаем отладчик, все точки останова, установленные в Program.cs
или Startup.cs
, не срабатывают. Действительно, приложение уже обработало эти файлы, когда я вручную подключаю отладчик, уже слишком поздно. Все остальные точки останова (в контроллерах или фоновом процессе...) срабатывают корректно.
При отладке того же проекта с помощью Visual Studio 2019 Community все мои точки останова срабатывают, даже те, что находятся в Program.cs
или Startup.cs
, что здесь является ожидаемым поведением.
Что я делаю не так ?
Точка останова l.44 никогда не достигается
- docker-compose.debug.yml (запущен
docker-compose -f "docker-compose.debug.yml" up -d --build
)
version: '3.7'
services:
myapp:
image: myapp
container_name: myapp
build:
context: .
dockerfile: src/MyApp/src/Dockerfile
ports:
- "60713:80"
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:80
volumes:
- ~/.vsdbg:/remote_debugger:rw
networks:
default:
external:
name: mynetwork
- запуск.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Docker .NET Core Attach (Preview)",
"containerName": "myapp",
"type": "docker",
"request": "attach",
"platform": "netCore",
"sourceFileMap": {
"/src": "${workspaceFolder}"
}
}
]
}
Действительно, если я запускаю отладчик кода VS до того, как контейнер будет запущен, я получаю следующее сообщение об ошибке
Error: Process 'docker exec -i "myapp...' exited with code 1
Error: Error: No such container: myapp
Thread.Sleep()
в данном случае как обходной путь? - person Cardi DeMonaco Jr   schedule 27.10.2020