Delen via


Fouten opsporen in een Azure Cloud Services-service (uitgebreide ondersteuning) in Visual Studio

Visual Studio biedt verschillende opties voor het opsporen van fouten in Azure Cloud Services (uitgebreide ondersteuning) en virtuele machines.

Voorwaarden

Fouten opsporen in uw cloudservice op uw lokale computer

U kunt tijd en geld besparen met behulp van de Azure Compute Emulator om fouten op te sporen in uw cloudservice op een lokale computer. Door lokaal fouten in een service op te sporen voordat u deze implementeert, kunt u de betrouwbaarheid en prestaties verbeteren zonder te betalen voor rekentijd. Sommige fouten kunnen echter alleen optreden wanneer u een cloudservice uitvoert in Azure zelf. U kunt deze fouten opsporen als u externe foutopsporing inschakelt wanneer u uw service publiceert en vervolgens het foutopsporingsprogramma koppelt aan een rolinstantie.

De emulator simuleert de Azure Compute-service en wordt uitgevoerd in uw lokale omgeving, zodat u uw cloudservice kunt testen en fouten kunt opsporen voordat u deze implementeert. De emulator verwerkt de levenscyclus van uw rolinstanties en biedt toegang tot gesimuleerde resources, zoals lokale opslag. Wanneer u debugt of uw service uitvoert vanuit Visual Studio, wordt de emulator automatisch als achtergrondtoepassing gestart en vervolgens wordt uw service naar de emulator geïmplementeerd. U kunt de emulator gebruiken om uw service weer te geven wanneer deze wordt uitgevoerd in de lokale omgeving. U kunt de volledige versie of de expressversie van de emulator uitvoeren. Zie Emulator Express gebruiken om lokaal een cloudservice uit te voeren en fouten op te sporen.

Fouten opsporen in uw cloudservice op uw lokale computer

  1. Selecteer in de menubalk Fouten opsporen>Foutopsporing starten om uw Azure Cloud Services-project (uitgebreide ondersteuning) uit te voeren. Als alternatief kunt u op F5 drukken. U ziet een bericht dat de rekenemulator wordt gestart. Wanneer de emulator wordt gestart, bevestigt het systeemvakpictogram dit.

    Azure-emulator in het systeemvak

  2. Geef de gebruikersinterface voor de rekenemulator weer door het snelmenu voor het Azure-pictogram in het systeemvak te openen en selecteer vervolgens De gebruikersinterface van de rekenemulator weergeven.

    In het linkerdeelvenster van de gebruikersinterface ziet u de services die momenteel zijn geïmplementeerd in de rekenemulator en de rolinstanties die door elke service worden uitgevoerd. U kunt de service of rollen kiezen om de levenscyclus, logboekregistratie en diagnostische gegevens in het rechterdeelvenster weer te geven. Als u de focus in de bovenmarge van een opgenomen venster plaatst, wordt het uitgebreid om het rechterdeelvenster te vullen.

  3. Doorloop de toepassing door opdrachten te kiezen in het Foutopsporingsmenu en onderbrekingspunten in uw code in te stellen. Terwijl u de toepassing in het foutopsporingsprogramma doorloopt, worden de deelvensters bijgewerkt met de huidige status van de toepassing. Wanneer u de foutopsporing stopt, wordt de implementatie van de toepassing verwijderd. Als uw toepassing een webrol bevat en u de eigenschap Opstartactie hebt ingesteld om de webbrowser te starten, start Visual Studio uw webtoepassing in de browser. Als u het aantal exemplaren van een rol in de serviceconfiguratie wijzigt, moet u de cloudservice stoppen en vervolgens foutopsporing opnieuw starten, zodat u fouten in deze nieuwe exemplaren van de rol kunt opsporen.

    Notitie

    Wanneer u stopt met het uitvoeren of opsporen van fouten in uw service, worden de lokale rekenemulator en opslagemulator niet gestopt. U moet ze expliciet stoppen vanuit het meldingengebied.

Fouten opsporen in een cloudservice in Azure

Als u foutopsporing op afstand inschakelt voor een cloudservice met behulp van de procedure in deze sectie, worden er geen gedegradeerde prestaties weergegeven of worden er extra kosten in rekening gebracht. Gebruik geen externe foutopsporing voor een productieservice, omdat clients die de service gebruiken mogelijk nadelig worden beïnvloed.

Externe foutopsporing inschakelen voor een cloudservice (uitgebreide ondersteuning)

  1. Voeg een eindpunt toe aan de ServiceDefinition.csdef- voor de standaardpoort msvsmon. Voor Visual Studio 2019 is het 4024.

    <Endpoints>
       <InputEndpoint name="RemoteDebug" protocol="tcp" port="4024" localPort="4024" />
    </Endpoints>
    

    Notitie

    Andere versies van Visual Studio hebben verschillende poorten Poorttoewijzingen voor externe foutopsporingsprogramma's.

  2. Open het snelmenu voor het Azure-project en selecteer Publiceren.

  3. Selecteer de faseringsomgeving en de Debug-configuratie.

    Dit is slechts een richtlijn. U kunt ervoor kiezen om uw testomgevingen uit te voeren in een productieomgeving. U kunt echter negatieve gevolgen hebben voor gebruikers als u externe foutopsporing inschakelt in de productieomgeving. U kunt de releaseconfiguratie kiezen, maar de foutopsporingsconfiguratie maakt foutopsporing eenvoudiger.

    kies de configuratie voor foutopsporing.

  4. Volg de gebruikelijke stappen die worden beschreven in Cloud Services (uitgebreide ondersteuning), maar schakel het selectievakje Extern bureaublad inschakelen in voor alle rollen.

    U wordt gevraagd om een gebruikersnaam en wachtwoord te maken voor de gebruiker van het externe bureaublad. U moet zich later aanmelden bij die virtuele machine.

  5. Ga naar het volgende scherm, controleer uw instellingen en klik op Publiceren en wacht tot de implementatie is voltooid.

  6. Meld u aan bij Azure Portal en navigeer naar de Cloudservice (uitgebreide ondersteuning) die u wilt debuggen.

  7. Kies Rollen en Exemplaren in het linkerdeelvenster en kies vervolgens de rol waarin u geïnteresseerd bent om op afstand te debuggen.

  8. Klik op Connect in de Role Instance popout aan de rechterkant en kies de knop Connect om een extern bureaubladbestand te downloaden om in te loggen op de virtuele machine. Meld u aan met de inloggegevens die u heeft ingesteld toen u het externe bureaublad in een vorige stap heeft ingeschakeld.

    Schermopname van de pop-out van het rolvoorbeeld met de optie Verbinden.

  9. Installeer op de virtuele machine van Remote Azure de externe hulpprogramma's van Visual Studio 2019, zoals beschreven in Externe foutopsporing.

  10. Voer vanaf het bureaublad op de virtuele machine de opdracht D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Remote Debugger\x64\msvsmon.exeuit. Zorg ervoor dat u het programma als Administrator uitvoert.

  11. Accepteer meldingen om toegang via de firewall toe te staan. Er wordt een bericht weergegeven dat aangeeft dat msvsmon.exe is begonnen met luisteren naar verbindingen.

  12. Open in Azure Portal de resourcegroep en haal het openbare IP-adres op voor de cloudservice (uitgebreide ondersteuning).

    Schermopname die laat zien waar u het openbare IP-adres voor de cloudservice kunt vinden.

Het foutopsporingsprogramma koppelen aan een cloudservice (uitgebreide ondersteuning) in Azure

Notitie

Indien mogelijk moet u fouten opsporen met de Foutopsporing configuratie die is gekozen in het proces Publiceren, maar als u fouten opspoort in een Release-configuratie, gebruikt u in Visual Studio Ctrl+Q om te zoeken naar 'Just My Code' en schakelt u Just My Code in Tools>Options>Debugger>Generaluit. Release-builds zijn geoptimaliseerd en worden dus niet beschouwd als 'Mijn code'.

  1. Kies Foutopsporing>Bijvoegen aan proces (of druk op Ctrl+Alt+P).

  2. Houd het verbindingstype op Standaard-.

  3. Voer het verbindingsdoel in met behulp van uw IP-adres en poort: {ipaddress}:4024.

  4. Koppel aan op automatische.

  5. Meld u aan met dezelfde inloggegevens als voor externe bureaubladgebruikers.

  6. Selecteer Proces weergeven voor alle gebruikers. Als u fouten in een werkrol opspoort, koppelt u deze aan WaWorkerHost.exe; als u fouten in een webrol opspoort, voegt u deze toe aan het w3wp.exe proces; voor een web-API-rol is deze WaIISHost.exe.

  7. Stel onderbrekingspunten in (navigeer naar de regel en druk op F9), open de openbare URL van de site en reproduceer het scenario om fouten op te sporen.

Externe foutopsporing inschakelen voor een cloudservice (uitgebreide ondersteuning)

  1. Voeg een eindpunt toe aan de ServiceDefinition.csdef- voor de standaardpoort msvsmon. Voor Visual Studio 2022 is dat 4026; Voor Visual Studio 2019 is het 4024.

    <Endpoints>
       <InputEndpoint name="RemoteDebug" protocol="tcp" port="4026" localPort="4026" />
    </Endpoints>
    

    Notitie

    Andere versies van Visual Studio hebben verschillende poorten Poorttoewijzingen voor externe foutopsporingsprogramma's.

  2. Als u zich richt op .NET 4.8, opent u het bestand ServiceConfiguration.Cloud.cscfg en controleert u de waarde van het kenmerk osFamily op het ServiceConfiguration-element bij het publiceren van Cloud Services (uitgebreide ondersteuning). Gebruik osFamily="7"voor een .NET 4.8-project.

  3. Open het snelmenu voor het Azure-project en selecteer Publiceren.

  4. Selecteer de faseringsomgeving en de Debug-configuratie.

    Dit is slechts een richtlijn. U kunt ervoor kiezen om uw testomgevingen uit te voeren in een productieomgeving. U kunt echter negatieve gevolgen hebben voor gebruikers als u externe foutopsporing inschakelt in de productieomgeving. U kunt de releaseconfiguratie kiezen, maar de foutopsporingsconfiguratie maakt foutopsporing eenvoudiger.

    De configuratie voor foutopsporing kiezen

  5. Volg de gebruikelijke stappen die worden beschreven in Cloud Services (uitgebreide ondersteuning), maar schakel het selectievakje Extern bureaublad inschakelen in voor alle rollen.

    U wordt gevraagd om een gebruikersnaam en wachtwoord te maken voor de gebruiker van het externe bureaublad. U moet zich later aanmelden bij die virtuele machine.

  6. Ga naar het volgende scherm, controleer uw instellingen en klik op Publiceren en wacht tot de implementatie is voltooid.

  7. Meld u aan bij Azure portal en navigeer naar de cloudservice (uitgebreide ondersteuning) die u wilt debuggen.

  8. Kies Rollen en Exemplaren in het linkerdeelvenster en kies vervolgens de rol die u op afstand wilt debuggen.

  9. Klik op Verbinding maken in de rolinstantie aan de rechterkant van het scherm en kies de knop Verbinding maken om een extern bureaubladbestand te downloaden waarmee u kunt inloggen op de virtuele machine. Meld u aan met de inloggegevens die u hebt aangemaakt toen u in een vorige stap het externe bureaublad hebt ingeschakeld.

    Schermopname van de rolinstance-pop-out met de optie Verbinding maken.

  10. Installeer op de virtuele machine van Remote Azure de Externe hulpprogramma's van Visual Studio 2022, zoals beschreven in Externe foutopsporing.

  11. Voer vanaf het bureaublad op de virtuele machine de opdracht msvsmon.exe uit in de installatiemap van Visual Studio onder Common7\IDE\Remote Debugger\x64. Zorg ervoor dat u als administrator uitvoert.

  12. Accepteer meldingen om toegang via de firewall toe te staan. Er wordt een bericht weergegeven dat aangeeft dat msvsmon.exe is begonnen met luisteren naar verbindingen.

    Schermopname waarop te zien is dat msvsmon.exe luistert naar verbindingen.

  13. Open in Azure Portal de resourcegroep en haal het openbare IP-adres op voor de cloudservice (uitgebreide ondersteuning).

    Schermopname die laat zien waar het openbare IP-adres voor de cloudservice moet worden gevonden.

Het foutopsporingsprogramma koppelen aan een cloudservice (uitgebreide ondersteuning) in Azure

Notitie

Indien mogelijk moet u fouten opsporen met de Foutopsporing configuratie die is gekozen in het proces Publiceren, maar als u fouten opspoort in een Release-configuratie, gebruikt u in Visual Studio Ctrl+Q om te zoeken naar 'Just My Code' en schakelt u Just My Code in Tools>Options>Debugger>Generaluit. Release-builds zijn geoptimaliseerd en worden dus niet beschouwd als 'Mijn code'.

  1. Kies Foutopsporing>Aan proces koppelen (of druk op Ctrl+Alt+P).

  2. Houd het verbindingstype op Standaard-.

  3. Voer het verbindingsdoel in met behulp van uw IP-adres en poort: {ipaddress}:4026.

  4. Stel koppelen aan in op automatisch.

  5. Meld u aan met dezelfde inloggegevens als de externe bureaubladgebruiker.

  6. Selecteer Proces weergeven voor alle gebruikers. Als u fouten in een werkrol opspoort, koppelt u deze aan WaWorkerHost.exe; als u fouten in een webrol opspoort, voegt u deze toe aan het w3wp.exe proces; voor een web-API-rol is deze WaIISHost.exe.

  7. Stel onderbrekingspunten in (navigeer naar de regel en druk op F9), open de openbare URL van de site en reproduceer het scenario om fouten op te sporen.

Beperkingen van externe foutopsporing in Azure

Externe foutopsporing heeft de volgende beperkingen:

  • Als externe foutopsporing is ingeschakeld, kunt u geen cloudservice publiceren waarin een rol meer dan 25 exemplaren heeft.

  • Het foutopsporingsprogramma maakt gebruik van poorten 30400 tot 30424, 31400 tot 31424 en 32400 tot 32424. Als u een van deze poorten probeert te gebruiken, kunt u uw service niet publiceren en wordt een van de volgende foutberichten weergegeven in het activiteitenlogboek voor Azure:

    • Fout bij het valideren van het CSCFG-bestand voor het .csdef-bestand. Het gereserveerde poortbereik 'bereik' voor eindpunt Microsoft.WindowsAzure.PlugIns.RemoteDebugger.Connector rol 'rol' overlapt met een al gedefinieerde poort of bereik.
    • Toewijzing is mislukt. Probeer het later opnieuw, probeer de VM-grootte of het aantal rolinstanties te verkleinen of probeer te implementeren in een andere regio.

Debuggen van Azure App Service

U kunt fouten opsporen in programma's die worden uitgevoerd in Azure App Service met behulp van het dialoogvenster Koppelen aan proces in Visual Studio.

Notitie

Dit is alleen beschikbaar voor Azure App Service vanaf Visual Studio 2022 17.1.

Fouten opsporen in een Windows Azure App Service

  1. Selecteer onder Foutopsporingde optie Bijvoegen aan proces.

  2. Wijzig verbindingstype in Microsoft Azure App Services-en selecteer Zoeken...

  3. Selecteer in het dialoogvenster dat wordt geopend de abonnementsnaam.

    schermopname van het dialoogvenster Azure App Service selecteren, met een lijst met app-services die u wilt selecteren.

    Notitie

    U moet zijn aangemeld bij een Microsoft-account met toegang tot het abonnement dat uw Azure App Service bevat.

  4. Filter de weergave op Resourcegroep of Resourcetype, ofwel zoeken op naam.

  5. Selecteer de App Service die u wilt debuggen en selecteer vervolgens Ok.

    Hiermee kunt u externe foutopsporing in uw App Service inschakelen en ziet u een lijst met beschikbare processen waaraan u kunt koppelen.

    schermopname van het venster Bijvoegen aan proces, met de processen die worden uitgevoerd in de geselecteerde App Service.

  6. Selecteer het proces waarmee u verbinding wilt maken en kies vervolgens Koppelen om met debuggen te beginnen.

Debuggen van Azure-virtuele machines

U kunt fouten opsporen in programma's die worden uitgevoerd op Azure Virtual Machines met behulp van Server Explorer in Visual Studio. Wanneer u externe foutopsporing inschakelt op een virtuele Azure-machine, installeert Azure de extensie voor externe foutopsporing op de virtuele machine. Vervolgens kunt u aan processen op de virtuele machine koppelen en fouten opsporen zoals u dat normaal zou doen.

Notitie

Virtuele machines die zijn gemaakt via de Azure Resource Manager-stack, kunnen extern worden opgespoord met behulp van Cloud Explorer in Visual Studio 2019. Zie Azure-resources beheren met Cloud Explorervoor meer informatie.

Fouten opsporen in een virtuele Azure-machine

  1. Vouw in Server Explorer het knooppunt Virtuele machines uit en selecteer het knooppunt van de virtuele machine die u wilt opsporen.

  2. Open het contextmenu en selecteer Foutopsporing inschakelen. Wanneer u wordt gevraagd of u zeker weet of u foutopsporing op de virtuele machine wilt inschakelen, selecteert u Ja.

    Azure installeert de extensie voor externe foutopsporing op de virtuele machine om foutopsporing in te schakelen.

    virtuele machine debuggen inschakelen opdracht

    azure-activiteitenlogboek

  3. Nadat de extensie voor externe foutopsporing is geïnstalleerd, opent u het contextmenu van de virtuele machine en selecteert u Foutopsporingsprogramma koppelen...

    Azure haalt een lijst op van de processen op de virtuele machine en geeft deze weer in het dialoogvenster Koppelen aan proces.

    koppel debugger opdracht

  4. Selecteer in het dialoogvenster Bijvoegen aan procesSelecteer om de lijst met resultaten te beperken om alleen de typen code weer te geven die u wilt opsporen. U kunt fouten opsporen in 32-bits code, 64-bits code, beheerde code, systeemeigen code, of beide.

    Codetype selecteren dialoogvenster

  5. Kies de processen die u op de virtuele machine wilt opsporen en selecteer vervolgens Bijvoegen. U kunt bijvoorbeeld het w3wp.exe proces kiezen als u fouten wilt opsporen in een web-app op de virtuele machine. Zie Fouten opsporen in een of meer processen in Visual Studio en Azure-rolarchitectuur voor meer informatie.

Een webproject en een virtuele machine maken voor foutopsporing

Voordat u uw Azure-project publiceert, is het wellicht handig om het te testen in een ingesloten omgeving die ondersteuning biedt voor foutopsporing en testscenario's, en waar u test- en bewakingsprogramma's kunt installeren. Een manier om dergelijke tests uit te voeren, is door op afstand fouten in uw app op een virtuele machine op te sporen.

Visual Studio ASP.NET projecten bieden een optie om een handige virtuele machine te maken die u kunt gebruiken voor het testen van apps. De virtuele machine bevat veelgebruikte eindpunten, zoals PowerShell, Extern bureaublad en WebDeploy.

Een webproject en een virtuele machine maken voor foutopsporing

  1. Maak in Visual Studio een nieuwe ASP.NET-webtoepassing.

  2. Selecteer in het dialoogvenster Nieuw ASP.NET-project in de sectie Azure virtuele machine in het dropdownmenu. Laat het selectievakje Externe resources maken ingeschakeld. Selecteer OK- om door te gaan.

    Het dialoogvenster Virtuele machine maken in Azure wordt weergegeven.

    het dialoogvenster om een ASP.NET-webproject aan te maken

    Notitie

    U wordt gevraagd u aan te melden bij uw Azure-account als u nog niet bent aangemeld.

  3. Kies de verschillende instellingen voor de virtuele machine en selecteer vervolgens OK. Zie Virtual Machines voor meer informatie.

    De naam die u invoert voor de DNS-naam is de naam van de virtuele machine.

    Virtuele machine maken in Azure dialoogvenster

    Azure maakt de virtuele machine en richt vervolgens de eindpunten in en configureert deze, zoals Extern bureaublad en Web Deploy.

  4. Nadat de virtuele machine volledig is geconfigureerd, selecteert u het knooppunt van de virtuele machine in Server Explorer.

  5. Open het contextmenu en selecteer Foutopsporing inschakelen. Wanneer u wordt gevraagd of u zeker weet of u foutopsporing op de virtuele machine wilt inschakelen, selecteert u Ja.

    Azure installeert de extensie voor externe foutopsporing op de virtuele machine om foutopsporing in te schakelen.

    virtuele machine de opdracht foutopsporing inschakelen

    azure-activiteitenlogboek

  6. Publiceer uw project zoals beschreven in Instructies: Een webproject implementeren met behulp van One-Click Publiceren in Visual Studio. Omdat u wilt debuggen op de virtuele machine, selecteert u op de pagina Instellingen van de wizard Publiceer Web, Debug als de configuratie. Dit zorgt ervoor dat codesymbolen beschikbaar zijn tijdens foutopsporing.

    Publicatie-instellingen

  7. Selecteer in de opties voor het publiceren van bestandenExtra bestanden verwijderen op het doel als het project al op een eerder tijdstip is geïmplementeerd.

  8. Nadat het project is gepubliceerd, selecteert u in het contextmenu van de virtuele machine in Server Explorer Foutopsporingsprogramma koppelen...

    Azure haalt een lijst op van de processen op de virtuele machine en geeft deze weer in het dialoogvenster Koppelen aan proces.

    debugger commando koppelen

  9. Selecteer in het dialoogvenster Bijvoegen aan procesSelecteer om de lijst met resultaten te beperken om alleen de typen code weer te geven die u wilt opsporen. U kunt fouten opsporen in 32-bits of 64-bits beheerde code, systeemeigen code of beide.

    dialoogvenster codetype selecteren

  10. Kies de processen die u op de virtuele machine wilt opsporen en selecteer vervolgens koppelen. U kunt bijvoorbeeld het w3wp.exe proces kiezen als u fouten wilt opsporen in een web-app op de virtuele machine. Zie Fouten opsporen in een of meer processen in Visual Studio voor meer informatie.