Delen via


Fouten opsporen in live ASP.NET Azure-apps met behulp van het foutopsporingsprogramma voor momentopnamen

Opmerking

Foutopsporing voor momentopnamen is afgeschaft en is niet meer beschikbaar in de nieuwste versies van Visual Studio 2022 en latere versies. Hoewel er geen exacte vervanging is, zijn er andere hulpprogramma's die nuttige diagnostische gegevens kunnen bieden:

De Snapshot Debugger maakt een momentopname van uw apps in productie wanneer code die u interesseert wordt uitgevoerd. Als u het foutopsporingsprogramma wilt instrueren om een momentopname te maken, stelt u snappoints en logboekpunten in uw code in. Met het foutopsporingsprogramma kunt u precies zien wat er mis is gegaan, zonder dat dit van invloed is op het verkeer van uw productietoepassing. Met het foutopsporingsprogramma voor momentopnamen kunt u de benodigde tijd aanzienlijk verminderen om problemen op te lossen die zich voordoen in productieomgevingen.

Snappunten en logboekpunten zijn vergelijkbaar met onderbrekingspunten, maar in tegenstelling tot onderbrekingspunten, stoppen snappunten de toepassing niet wanneer ze voorkomen. Normaal gesproken duurt het vastleggen van een momentopname op een snappoint 10-20 milliseconden.

In deze tutorial, zul je:

  • Het foutopsporingsprogramma voor momentopnamen starten
  • Een snappoint instellen en een momentopname weergeven
  • Een logboekpunt instellen

Vereiste voorwaarden

  • Snapshot Debugger is alleen beschikbaar vanaf Visual Studio 2017 Enterprise versie 15.5 of hoger met de Azure-ontwikkelworkload. (Op het tabblad Afzonderlijke onderdelen vindt u deze onder Foutopsporing en testen>Snapshot debugger.)

    Installeer Visual Studio 2019 als deze nog niet is geïnstalleerd. Als u bijwerkt vanaf een vorige Visual Studio-installatie, voert u het Visual Studio-installatieprogramma uit en controleert u het onderdeel Snapshot Debugger in de workload ASP.NET en webontwikkeling.

  • Basis- of hoger Azure App Service-plan.

  • Momentopnameverzameling is beschikbaar voor de volgende web-apps die worden uitgevoerd in Azure App Service:

    • ASP.NET toepassingen die worden uitgevoerd op .NET Framework 4.6.1 of hoger.
    • ASP.NET Core-toepassingen die worden uitgevoerd op .NET Core 2.0 of hoger in Windows.

Open uw project en start het foutopsporingsprogramma voor momentopnamen

  1. Open het project dat u wilt momentopname-debuggen.

    Belangrijk

    Als u foutopsporing van momentopnamen wilt uitvoeren, moet u dezelfde versie van de broncode openen die is gepubliceerd naar uw Azure App Service.

  2. Kies Debug > Attach Snapshot Debugger.... Selecteer de Azure App Service waarvoor uw project is geïmplementeerd en een Azure-opslagaccount en klik vervolgens op Bijvoegen. Snapshot Debugger ondersteunt ook Azure Kubernetes Service en Azure Virtual Machines (VM) & Virtual Machine Scale Sets.

    Het foutopsporingsprogramma voor momentopnamen starten vanuit het menu Foutopsporing

    Azure-resource selecteren

    Belangrijk

    De eerste keer dat u Snapshot Debugger koppelen selecteert, wordt u gevraagd om de site-extensie Snapshot Debugger te installeren in uw Azure App Service. Voor deze installatie moet uw Azure App Service opnieuw worden opgestart.

    Opmerking

    (Visual Studio 2019 versie 16.2 en hoger) Snapshot Debugger heeft azure-cloudondersteuning ingeschakeld. Zorg ervoor dat zowel de Azure-resource als het Azure Storage-account dat u selecteert zich in dezelfde cloud bevinden. Neem contact op met uw Azure-beheerder als u vragen hebt over de Azure-nalevingsconfiguraties van uw onderneming.

    Visual Studio bevindt zich nu in de foutopsporingsmodus voor momentopnamen. Snapshot foutopsporingsmodus

    In het venster Modules ziet u wanneer alle modules zijn geladen voor Azure App Service (kies Fouten opsporen > in Windows-modules > om dit venster te openen).

    Het venster Modules controleren

Een snappoint instellen

  1. Klik in de code-editor op de linkergoot naast een coderegel waarin u geïnteresseerd bent om een snappoint in te stellen. Zorg ervoor dat je zeker weet dat de code wordt uitgevoerd.

    Een snappoint instellen

  2. Klik op Verzameling starten om het snappoint in te schakelen.

    Zet het snappunt aan

    Aanbeveling

    U kunt niet stappen uitvoeren wanneer u een momentopname bekijkt, maar u kunt meerdere snappoints in uw code plaatsen om de uitvoering op verschillende regels code te volgen. Als u meerdere snappoints in uw code hebt, zorgt het foutopsporingsprogramma voor momentopnamen ervoor dat de bijbehorende momentopnamen afkomstig zijn van dezelfde sessie voor eindgebruikers. De Snapshot Debugger doet dit zelfs als er veel gebruikers zijn die uw app gebruiken.

Een momentopname maken

Zodra een snappoint is ingesteld, kunt u handmatig een momentopname genereren door naar de browserweergave van uw website te gaan en de regel met code uit te voeren die is gemarkeerd of wacht totdat uw gebruikers er een genereren op basis van hun gebruik van de site.

Momentopnamegegevens inspecteren

  1. Wanneer het snappoint wordt bereikt, wordt er een momentopname weergegeven in het venster Diagnostische hulpprogramma's. Als u dit venster wilt openen, kiest u Foutopsporing > in Windows > Diagnostische hulpprogramma's weergeven.

    Een snappoint openen

  2. Dubbelklik op het snappoint om de momentopname in de code-editor te openen.

    Momentopnamegegevens controleren

    In deze weergave kunt u de muisaanwijzer over variabelen bewegen om DataTips weer te geven, de vensters Locals, Horloges en Oproepstack te gebruiken en ook expressies te evalueren.

    De website zelf is nog steeds actief en eindgebruikers worden niet beïnvloed. Er wordt standaard slechts één momentopname per snappoint vastgelegd: nadat een momentopname is vastgelegd, wordt het modulepunt uitgeschakeld. Als u een andere momentopname wilt vastleggen op het snappoint, kunt u de snappoint weer inschakelen door op Verzameling bijwerken te klikken.

U kunt ook meer snappoints toevoegen aan uw app en deze inschakelen met de knop Verzameling bijwerken .

Hulp nodig? Zie de pagina's voor probleemoplossing en bekende problemen enveelgestelde vragen over foutopsporing van momentopnamen .

Een voorwaardelijk uitlijnpunt instellen

Als het lastig is om een specifieke toestand in uw app opnieuw te maken, kunt u overwegen een voorwaardelijk snappoint te gebruiken. Met voorwaardelijke snappoints kunt u bepalen wanneer u een momentopname wilt maken, bijvoorbeeld wanneer een variabele een bepaalde waarde bevat die u wilt inspecteren. U kunt voorwaarden instellen met behulp van expressies, filters of aantal treffers.

Een voorwaardelijk uitlijnpunt creëren

  1. Klik met de rechtermuisknop op een snappoint-pictogram (de lege bol) en kies Instellingen.

    Instellingen kiezen

  2. Typ een expressie in het venster met snappoint-instellingen.

    Een expressie typen

    In de vorige afbeelding wordt de screenshot alleen gemaakt voor het snappoint wanneer visitor.FirstName == "Dan".

Een logboekpunt instellen

Naast het maken van een momentopname wanneer een snappoint wordt bereikt, kunt u ook een snappoint configureren om een bericht te registreren (dat wil gezegd een logboekpunt maken). U kunt logboekpunten instellen zonder dat u uw app opnieuw hoeft te implementeren. Logboekpunten worden virtueel uitgevoerd en veroorzaken geen gevolgen of bijwerkingen voor uw actieve toepassing.

Een logpunt maken

  1. Klik met de rechtermuisknop op een snappoint-pictogram (de blauwe zeshoek) en kies Instellingen.

  2. Selecteer Acties in het venster instellingen van snappoint.

    Een logboekpunt maken

  3. In het veld Bericht kunt u het nieuwe logboekbericht invoeren dat u wilt vastleggen. U kunt variabelen ook evalueren in uw logboekbericht door ze in accolades te plaatsen.

    Als u verzenden naar het uitvoervenster kiest en het logboekpunt wordt bereikt, wordt het bericht weergegeven in het venster Diagnostische hulpprogramma's.

    Logpuntgegevens in het venster Diagnostische hulpmiddelen

    Als u verzenden naar toepassingslogboek kiest, verschijnt het bericht overal waar u berichten van System.Diagnostics.Trace kunt zien (of ILogger in .NET Core), zoals in App Insights.

In deze zelfstudie hebt u geleerd hoe u de Momentopnamen Debugger voor App Services gebruikt. Mogelijk wilt u meer informatie over deze functie lezen.