Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
С помощью Visual Studio 2019 можно отлаживать приложения .NET в контейнерах в виде служб Service Fabric. В этой статье показано, как настроить среду и отладить приложение .NET в контейнере, работающем в локальном кластере Service Fabric.
Предпосылки
- В Windows 10 следуйте инструкциям из этого краткого руководства по настройке Windows 10 для запуска контейнеров Windows
- В Windows Server 2016 следуйте инструкциям из этого краткого руководства по настройке Windows 2016 для запуска контейнеров Windows
- Настройка локальной среды Service Fabric путем подготовки среды разработки в Windows
Настройка среды разработчика для отладки контейнеров
Перед продолжением следующего шага убедитесь, что служба Docker для окна запущена.
Для поддержки разрешения DNS между контейнерами необходимо настроить локальный кластер разработки с помощью имени компьютера. Эти действия также необходимы, если вы хотите обратиться к службам через обратный прокси-сервер.
Открытие PowerShell от имени администратора
Перейдите в папку установки кластера SDK, которая обычно находится в
C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup.Запуск скрипта
DevClusterSetup.ps1C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1Примечание.
Можно использовать
-CreateOneNodeClusterдля настройки кластера с одним узлом. По умолчанию будет создан локальный пятиузловой кластер.Дополнительные сведения о службе DNS в Service Fabric см. в статье "Служба DNS" в Azure Service Fabric. Дополнительные сведения об использовании обратного прокси-сервера Service Fabric из служб, работающих в контейнере, см. в статье "Обратная обработка прокси-сервера" для служб, работающих в контейнерах.
Известные ограничения при отладке контейнеров в Service Fabric
Ниже приведен список известных ограничений с контейнерами отладки в Service Fabric и возможными разрешениями:
- Использование localhost для ClusterFQDNorIP не поддерживает разрешение DNS в контейнерах.
- Разрешение: настройка локального кластера с использованием имени компьютера (см. выше)
- При работе с Windows10 на виртуальной машине dns-ответ не будет возвращен контейнеру.
- Разрешение. Отключение разгрузки контрольной суммы UDP для IPv4 на сетевом адаптере виртуальных машин
- При запуске Windows10 производительность сети на компьютере снижается.
- https://github.com/Azure/service-fabric-issues/issues/1061
- Разрешение служб в том же приложении с помощью dns-имени службы не работает в Windows10, если приложение было развернуто с помощью Docker Compose
- Разрешение. Использование servicename.applicationname для разрешения конечных точек службы
- https://github.com/Azure/service-fabric-issues/issues/1062
- При использовании IP-адреса для ClusterFQDNorIP изменение основного IP-адреса узла приведет к нарушению функциональности DNS.
- Решение. Повторно создайте кластер с помощью нового первичного IP-адреса на узле или используйте имя компьютера. Это разрыв по проектированию.
- Если полное доменное имя кластера было создано без разрешения в сети, DNS завершится ошибкой.
- Решение: Воспроизведите локальный кластер с использованием основного IP-адреса хоста. Этот сбой является преднамеренным.
- При отладке контейнера журналы docker будут доступны только в окне вывода Visual Studio, а не через API Service Fabric, включая Service Fabric Explorer
Отладка приложения .NET, работающего в контейнерах Docker в Service Fabric
Запустите Visual Studio от имени администратора.
Откройте существующее приложение .NET или создайте новое приложение.
Щелкните проект правой кнопкой мыши и выберите Добавить -> Поддержка оркестратора контейнеров -> Service Fabric
Нажмите клавишу F5 , чтобы начать отладку приложения.
Visual Studio поддерживает типы проектов консоли и ASP.NET для .NET и .NET Core.
Дальнейшие действия
Дополнительные сведения о возможностях Service Fabric и контейнеров см. в обзоре контейнеров Service Fabric.