Gewusst wie: Debuggen von Windows-Containern in Azure Service Fabric mit Visual Studio 2019

Mit Visual Studio 2019 können Sie .NET-Anwendungen in Containern als Service Fabric-Dienste debuggen. In diesem Artikel erfahren Sie, wie Sie Ihre Umgebung konfigurieren und anschließend eine .NET-Anwendung in einem Container debuggen, der in einem lokalen Service Fabric-Cluster ausgeführt wird.

Voraussetzungen

Konfigurieren der Entwicklerumgebung zum Debuggen von Containern

  1. Stellen Sie sicher, dass der Docker für den Windows-Dienst ausgeführt wird, bevor Sie mit dem nächsten Schritt fortfahren.

  2. Um die DNS-Auflösung zwischen den Containern zu unterstützen, müssen Sie Ihren lokalen Entwicklungscluster einrichten und dazu den Computernamen verwenden. Diese Schritte sind auch erforderlich, wenn Sie Dienste über den Reverseproxy addressieren möchten.

    1. Starten von PowerShell als Administrator

    2. Navigieren Sie zum Setupordner des SDK-Clusters, in der Regel C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup.

    3. Ausführen des Skripts DevClusterSetup.ps1

        C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1
      

      Hinweis

      Sie können -CreateOneNodeCluster zum Einrichten eines Einzelknotenclusters verwenden. Mit dem Standardwert wird ein lokaler Cluster mit fünf Knoten erstellt.

      Weitere Informationen zum DNS-Dienst in Service Fabric finden Sie unter DNS-Dienst in Azure Service Fabric. Weitere Informationen zur Verwendung des Service Fabric-Reverseproxys von Diensten aus, die in einem Container ausgeführt werden, finden Sie unter Reverseproxy – spezieller Umgang mit Diensten, die in Containern ausgeführt werden.

Bekannte Einschränkungen beim Debuggen von Containern in Service Fabric

Es folgt eine Liste der bekannten Einschränkungen beim Debuggen von Containern in Service Fabric und mögliche Lösungen:

  • Bei Verwendung von „localhost“ für „ClusterFQDNorIP“ wird die DNS-Auflösung in Containern nicht unterstützt.
    • Lösung: Richten Sie den lokalen Cluster unter Verwendung des Computernamens ein (siehe oben).
  • Beim Ausführen von Windows 10 auf einem virtuellen Computer erhält der Container keine DNS-Antwort zurück.
  • Das Auflösen von Diensten in derselben Anwendung mithilfe des DNS-Dienstnamens funktioniert nicht unter Windows 10, wenn die Anwendung mit Docker Compose bereitgestellt wurde.
  • Bei Verwendung der IP-Adresse für „ClusterFQDNorIP“ wird beim Ändern der primären IP-Adresse auf dem Host die DNS-Funktionalität unterbrochen.
    • Lösung: Erstellen Sie den Cluster mit der neuen primären IP-Adresse auf dem Host neu, oder verwenden Sie den Computernamen. Diese Unterbrechung ist beabsichtigt.
  • Wenn der vollständig qualifizierte Domänenname (FQDN), mit dem der Cluster erstellt wurde, im Netzwerk nicht aufgelöst werden kann, schlägt DNS fehl.
    • Lösung: Erstellen Sie den lokalen Cluster neu, und verwenden Sie dabei die primäre IP-Adresse des Hosts. Dieser Fehler ist beabsichtigt.
  • Beim Debuggen eines Containers stehen Docker-Protokolle nur im Visual Studio-Ausgabefenster und nicht über Service Fabric-APIs (einschließlich Service Fabric Explorer) zur Verfügung.

Debuggen einer .NET-Anwendung, die in Docker-Containern unter Service Fabric ausgeführt wird

  1. Starten Sie Visual Studio als Administrator.

  2. Öffnen Sie eine vorhandene .NET Anwendung, oder erstellen Sie eine neue.

  3. Klicken Sie mit der rechten Maustaste auf das Projekt, und wählen Sie Hinzufügen -> Unterstützung für Containerorchestrator -> Service Fabric aus.

  4. Drücken Sie F5 , um das Debuggen der Anwendung zu starten.

    Visual Studio unterstützt Konsolen- und ASP.NET-Projekttypen für .NET und .NET Core.

Nächste Schritte

Weitere Informationen zu den Funktionen von Service Fabric und Containern finden Sie unter Übersicht über Service Fabric-Container.