Anvisningar: Felsöka Windows-containrar i Azure Service Fabric med Visual Studio 2019
Med Visual Studio 2019 kan du felsöka .NET-program i containrar som Service Fabric-tjänster. Den här artikeln visar hur du konfigurerar din miljö och sedan felsöker ett .NET-program i en container som körs i ett lokalt Service Fabric-kluster.
Förutsättningar
- I Windows 10 följer du den här snabbstarten för att konfigurera Windows 10 för att köra Windows-containrar
- I Windows Server 2016 följer du den här snabbstarten för att konfigurera Windows 2016 för att köra Windows-containrar
- Konfigurera din lokala Service Fabric-miljö genom att följa Förbered utvecklingsmiljön i Windows
Konfigurera utvecklarmiljön för att felsöka containrar
Kontrollera att Docker för Window-tjänsten körs innan du fortsätter med nästa steg.
För att stödja DNS-matchning mellan containrar måste du konfigurera ditt lokala utvecklingskluster med hjälp av datornamnet. De här stegen är också nödvändiga om du vill hantera tjänster via den omvända proxyn.
Öppna PowerShell som administratör
Navigera till mappen för SDK-klusterkonfiguration, vanligtvis
C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup
.Kör skriptet
DevClusterSetup.ps1
C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1
Kommentar
Du kan använda
-CreateOneNodeCluster
för att konfigurera ett kluster med en nod. Standardinställningen skapar ett lokalt kluster med fem noder.Mer information om DNS-tjänsten i Service Fabric finns i DNS-tjänsten i Azure Service Fabric. Mer information om hur du använder omvänd Service Fabric-proxy från tjänster som körs i en container finns i Specialhantering av omvänd proxy för tjänster som körs i containrar.
Kända begränsningar vid felsökning av containrar i Service Fabric
Nedan visas en lista över kända begränsningar med felsökning av containrar i Service Fabric och möjliga lösningar:
- Att använda localhost för ClusterFQDNorIP stöder inte DNS-matchning i containrar.
- Lösning: Konfigurera det lokala klustret med hjälp av datornamnet (se ovan)
- Om du kör Windows10 på en virtuell dator får du inte DNS-svar tillbaka till containern.
- Lösning: Inaktivera UDP-kontrollsummans avlastning för IPv4 på nätverkskortet för virtuella datorer
- Om du kör Windows10 försämras nätverksprestandan på datorn.
- https://github.com/Azure/service-fabric-issues/issues/1061
- Att lösa tjänster i samma program med dns-tjänstnamnet fungerar inte i Windows10, om programmet distribuerades med Docker Compose
- Lösning: Använd servicename.applicationname för att lösa tjänstslutpunkter
- https://github.com/Azure/service-fabric-issues/issues/1062
- Om du använder IP-adress för ClusterFQDNorIP bryter dns-funktionen om du ändrar den primära IP-adressen på värden.
- Lösning: Återskapa klustret med hjälp av den nya primära IP-adressen på värden eller använd datornamnet. Denna brytning är avsiktligt.
- Om det FQDN som klustret skapades med inte kan matchas i nätverket misslyckas DNS.
- Lösning: Återskapa det lokala klustret med hjälp av värdens primära IP-adress. Det här felet är avsiktligt.
- När du felsöker en container är Docker-loggar endast tillgängliga i Visual Studio-utdatafönstret, inte via Service Fabric-API:er, inklusive Service Fabric Explorer
Felsöka ett .NET-program som körs i docker-containrar i Service Fabric
Kör Visual Studio som administratör.
Öppna ett befintligt .NET-program eller skapa ett nytt.
Högerklicka på projektet och välj Lägg till –> Stöd för Container Orchestrator –> Service Fabric
Tryck på F5 för att börja felsöka programmet.
Visual Studio stöder konsol- och ASP.NET projekttyper för .NET och .NET Core.
Nästa steg
Mer information om funktionerna i Service Fabric och containrar finns i Översikt över Service Fabric-containrar.