Probleemoplossing en bekende problemen voor foutopsporing van momentopnamen in Visual Studio
Van toepassing op: Visual Studio
Dit artikel bevat oplossingen voor veelvoorkomende problemen die kunnen optreden bij het opsporen van fouten in een Azure-app met het foutopsporingsprogramma voor momentopnamen in Visual Studio.
Als de stappen die in dit artikel worden beschreven, uw probleem niet oplossen, zoekt u naar het probleem in de ontwikkelaarscommunity of meldt u een nieuw probleem door Help>feedbackrapport>te kiezen in Visual Studio.
Probleem: 'Foutopsporingsprogramma voor momentopname koppelen' treedt op bij een HTTP-statuscodefout
Als u de volgende fout in het uitvoervenster ziet tijdens de poging om te koppelen, kan dit een bekend probleem zijn dat wordt vermeld in de volgende secties. Probeer de voorgestelde oplossingen en neem contact op met de voorgaande alias als het probleem zich blijft voordoen.
[TIMESTAMP] Error --- Unable to Start Snapshot Debugger - Attach Snapshot Debugger failed: System.Net.WebException: The remote server returned an error: (###) XXXXXX
(401) Niet geautoriseerd
Deze fout geeft aan dat de REST-aanroep die is uitgegeven door Visual Studio naar Azure, een ongeldige referentie gebruikt.
Voer deze stappen uit:
- Zorg ervoor dat uw Visual Studio-personalisatieaccount machtigingen heeft voor het Azure-abonnement en de resource waaraan u een bijlage koppelt. Een snelle manier om dit te bepalen is om te controleren of de resource beschikbaar is in het dialoogvenster vanuit foutopsporingsprogramma Voor momentopnamen>koppelen...>Azure Resource>Select Existing of in Cloud Explorer.
- Als deze fout zich blijft voordoen, gebruikt u een van de feedbackkanalen die in het begin van dit artikel worden beschreven.
Als u Verificatie/autorisatie (EasyAuth) hebt ingeschakeld in uw App Service, kan er een 401-fout optreden met LaunchAgentAsync in het foutbericht van de aanroepstack. Zorg ervoor dat actie moet worden ondernomen wanneer de aanvraag niet is geverifieerd , is ingesteld op Anonieme aanvragen toestaan (geen actie) in Azure Portal en geef in plaats daarvan een authorization.json op in D:\Home\sites\wwwroot met de volgende inhoud.
{
"routes": [
{
"path_prefix": "/",
"policies": {
"unauthenticated_action": "RedirectToLoginPage"
}
},
{
"http_methods": [ "POST" ],
"path_prefix": "/41C07CED-2E08-4609-9D9F-882468261608/api/agent",
"policies": {
"unauthenticated_action": "AllowAnonymous"
}
}
]
}
Met de eerste route wordt uw app-domein beveiligd dat vergelijkbaar is met Aanmelden met [IdentityProvider]. Met de tweede route wordt het endpoint SnapshotDebugger AgentLaunch buiten verificatie weergegeven. Hiermee wordt de vooraf gedefinieerde actie uitgevoerd om de diagnostische agent SnapshotDebugger alleen te starten als de vooraf geïnstalleerde site-extensie SnapshotDebugger is ingeschakeld voor uw app-service. Zie URL-autorisatieregels voor meer informatie over de configuratie van authorization.json.
(403) Verboden
De fout 403 - Verboden geeft aan dat de machtiging is geweigerd. Veel verschillende scenario's kunnen deze fout veroorzaken.
Voer deze stappen uit:
- Controleer of uw Visual Studio-account een geldig Azure-abonnement heeft met de benodigde RBAC-machtigingen (Role-Based Access Control) voor de resource. Controleer voor AppService of u gemachtigd bent om een query uit te voeren op het App Service-plan dat als host fungeert voor uw app.
- Controleer of de tijdstempel van uw clientcomputer juist en up-to-date is. Servers met tijdstempels uit meer dan 15 minuten van de tijdstempel van de aanvraag produceren deze fout meestal.
- Als deze fout zich blijft voordoen, gebruikt u een van de feedbackkanalen die in het begin van dit artikel worden beschreven.
(404) Niet gevonden
De fout 404 - Niet gevonden geeft aan dat de website niet kan worden gevonden op de server.
Voer deze stappen uit:
- Controleer of u een website hebt geïmplementeerd en uitgevoerd op de App Service-resource waaraan u een bijlage wilt toevoegen.
- Controleer of de site beschikbaar is op https://< resource.azurewebsites.net>
- Controleer of de correct uitgevoerde aangepaste webtoepassing geen statuscode van 404 retourneert wanneer deze wordt geopend op https:// resource.azurewebsites.net><.
- Als deze fout zich blijft voordoen, gebruikt u een van de feedbackkanalen die in het begin van dit artikel worden beschreven.
(406) Niet acceptabel
De fout 406 - Niet acceptabel geeft aan dat de server niet kan reageren op het type dat is ingesteld in de header Accepteren van de aanvraag.
Voer deze stappen uit:
- Controleer of uw site beschikbaar is op https:// resource.azurewebsites.net>.<
- Controleer of uw site niet is gemigreerd naar nieuwe exemplaren. Snapshot Debugger maakt gebruik van het begrip ARRAffinity voor het routeren van aanvragen naar specifieke exemplaren die deze fout af en toe kunnen produceren.
- Als deze fout zich blijft voordoen, gebruikt u een van de feedbackkanalen die in het begin van dit artikel worden beschreven.
(409) Conflict
De fout 409 - Conflict geeft aan dat de aanvraag conflicteert met de huidige serverstatus.
Dit is een bekend probleem dat optreedt wanneer een gebruiker het foutopsporingsprogramma voor momentopnamen probeert toe te voegen aan een AppService waarvoor ApplicationInsights is ingeschakeld. ApplicationInsights stelt de AppSettings in met een andere behuizing dan Visual Studio, waardoor dit probleem wordt veroorzaakt.
Dit is opgelost in Visual Studio 2019.
Voer deze stappen uit:
- Als deze fout zich blijft voordoen, gebruikt u een van de feedbackkanalen die in het begin van dit artikel worden beschreven.
(500) Interne serverfout
De fout 500 - Interne serverfout geeft aan dat de site offline is of dat de server de aanvraag niet kan verwerken. Snapshot Debugger werkt alleen voor actieve toepassingen. Application Insights Snapshot Debugger biedt momentopnamen van uitzonderingen en is mogelijk het beste hulpprogramma voor uw behoeften.
(502) Ongeldige gateway
De fout 502 - Ongeldige gateway geeft een netwerkprobleem aan aan de serverzijde en kan tijdelijk zijn.
Voer deze stappen uit:
- Wacht enkele minuten voordat u het foutopsporingsprogramma voor momentopnamen opnieuw koppelt.
- Als deze fout zich blijft voordoen, gebruikt u een van de feedbackkanalen die in het begin van dit artikel worden beschreven.
Probleem: Snappoint is niet ingeschakeld
Als u een waarschuwingspictogram ziet met uw snappoint in plaats van het normale snappoint-pictogram, is het snappoint niet ingeschakeld.
Voer deze stappen uit:
- Zorg ervoor dat u dezelfde versie van de broncode gebruikt om uw app te bouwen en te implementeren.
- Zorg ervoor dat u de juiste symbolen voor uw implementatie laadt.
- Hiertoe bekijkt u het venster Modules tijdens foutopsporing van momentopnamen en controleert u of in de kolom Symboolbestand een PDB-bestand wordt weergegeven dat is geladen voor de module die u foutopsporing uitvoert.
- Het foutopsporingsprogramma voor momentopnamen probeert automatisch symbolen voor uw implementatie te downloaden en te gebruiken.
Probleem: symbolen worden niet geladen wanneer ik een momentopname open
Als u het volgende venster ziet, zijn symbolen niet geladen.
Voer deze stappen uit:
Selecteer Symboolinstellingen wijzigen... op de pagina.
Voeg in de instellingen voor foutopsporingssymbool > een map voor symboolcache toe.
Start de foutopsporing van momentopnamen opnieuw nadat het symboolpad is ingesteld.
De symbolen of PDB-bestanden die beschikbaar zijn in uw project, moeten overeenkomen met uw App Service-implementatie. De meeste implementaties (implementatie via Visual Studio, CI/CD met Azure Pipelines of Kudu, enzovoort) publiceren uw symboolbestanden samen met uw App Service. Als u de cachemap voor symbolen instelt, kan Visual Studio deze symbolen gebruiken.
Als uw organisatie een symboolserver gebruikt of symbolen in een ander pad laat vallen, gebruikt u de symboolinstellingen om de juiste symbolen voor uw implementatie te laden.
Probleem: Ik zie de optie 'Snapshot Debugger koppelen' niet in Cloud Explorer
Voer deze stappen uit:
Zorg ervoor dat het onderdeel Snapshot Debugger is geïnstalleerd. Open het installatieprogramma van Visual Studio en controleer het onderdeel Snapshot Debugger in de Azure-workload.
Zorg ervoor dat uw app wordt ondersteund voor Visual Studio 2019 of hoger:
- Azure-app Services: ASP.NET toepassingen die worden uitgevoerd op .NET Framework 4.6.1 of hoger.
- Azure-app Services: ASP.NET Core-toepassingen die worden uitgevoerd op .NET Core 2.0 of hoger in Windows.
- Virtuele Azure-machines (en virtuele-machineschaalsets): ASP.NET toepassingen die worden uitgevoerd op .NET Framework 4.6.1 of hoger.
- Virtuele Azure-machines (en virtuele-machineschaalsets): ASP.NET Core-toepassingen die worden uitgevoerd op .NET Core 2.0 of hoger in Windows.
- Azure Kubernetes Services : ASP.NET Core-toepassingen die worden uitgevoerd op .NET Core 2.2 of hoger op Debian 9.
- Azure Kubernetes Services: ASP.NET Core-toepassingen die worden uitgevoerd op .NET Core 2.2 of hoger op Alpine 3.8.
- Azure Kubernetes Services: ASP.NET Core-toepassingen die worden uitgevoerd op .NET Core 2.2 of hoger op Ubuntu 18.04.
Probleem: Ik zie alleen beperkte momentopnamen in de diagnostische hulpprogramma's
Voer deze stappen uit:
- Momentopnamen nemen weinig geheugen in beslag, maar hebben wel doorvoerkosten. Als het foutopsporingsprogramma voor momentopnamen detecteert dat uw server zwaar wordt belast, worden er geen momentopnamen gemaakt. U kunt al vastgelegde momentopnamen verwijderen door de sessie Snapshot Debugger te stoppen en het opnieuw te proberen.
Probleem: Foutopsporing van momentopnamen met meerdere versies van Visual Studio geeft me fouten (Visual Studio 2019 of nieuwere versies)
Visual Studio 2019 vereist een nieuwere versie van de site-extensie Snapshot Debugger op uw Azure-app Service. Deze versie is niet compatibel met de oudere versie van de site-extensie Snapshot Debugger die wordt gebruikt door Visual Studio 2017. U krijgt de volgende fout als u het foutopsporingsprogramma voor momentopnamen in Visual Studio 2019 wilt koppelen aan een Azure-app-service die eerder is opgespoord door het snapshot debugger in Visual Studio 2017:
Als u Visual Studio 2017 echter gebruikt om het foutopsporingsprogramma voor momentopnamen te koppelen aan een Azure-app Service die eerder is opgespoord door het foutopsporingsprogramma voor momentopnamen in Visual Studio 2019, krijgt u de volgende fout:
U lost dit op door de volgende app-instellingen in Azure Portal te verwijderen en het foutopsporingsprogramma voor momentopnamen opnieuw toe te voegen:
INSTRUMENTATIONENGINE_EXTENSION_VERSION
SNAPSHOTDEBUGGER_EXTENSION_VERSION
Probleem: Ik koppel me aan de verkeerde/oude Azure-resource of -opslagaccount
Voer deze stappen uit:
De vermeldingen 'Azure-resource' en 'Opslagaccount' gebruiken resourcenamen als sleutels, zodat acties zoals het migreren van een resource naar verschillende abonnementen problemen kunnen veroorzaken. Voer de volgende stappen uit om de lijst te wissen:
Voer deze opdrachten uit in de opdrachtprompt voor Ontwikkelaars voor VS (met beheerdersbevoegdheden).
vsregedit remove local HKCU SnapshotDebugger AzureResourcesMRU vsregedit remove local HKCU SnapshotDebugger StorageAccountsMRU
Verwijder alle .suo-bestanden die zijn gekoppeld aan de web-app.
Probleem: Ik ondervind problemen met foutopsporing voor momentopnamen en ik moet meer logboekregistratie inschakelen
Agentlogboeken inschakelen
Als u logboekregistratie van agents wilt in- en uitschakelen, opent u Visual Studio en gaat u naar Hulpprogramma's>>Snapshot Debugger>Enable agent logging. Als oude agentlogboeken bij het starten van een sessie ook zijn ingeschakeld, worden eerdere agentlogboeken verwijderd door elke geslaagde Visual Studio-bijlage.
U vindt agentlogboeken op de volgende locaties:
- App Services:
- Navigeer naar de Kudu-site van uw App Service (dat wil <gezegd uwappservice>.scm.azurewebsites.net) en navigeer naar Debug Console.
- Agentlogboeken worden opgeslagen in de volgende map: D:\home\LogFiles\SiteExtensions\DiagnosticsAgentLogs\.
- VM/VMSS:
- Meld u aan bij uw VM. Agentlogboeken worden als volgt opgeslagen: C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<Version>\SnapshotDebuggerAgent*.txt_
- AKS
- Navigeer naar de volgende map: /tmp/diag/AgentLogs/*
Profiler-/Instrumentatielogboeken inschakelen
U vindt instrumentatielogboeken op de volgende locaties:
- App Services:
- Foutlogboekregistratie wordt automatisch verzonden naar D:\Home\LogFiles\eventlog.xml, gebeurtenissen zijn gemarkeerd met
<Provider Name="Instrumentation Engine" />
of 'Productieonderbrekingspunten'
- Foutlogboekregistratie wordt automatisch verzonden naar D:\Home\LogFiles\eventlog.xml, gebeurtenissen zijn gemarkeerd met
- VM/VMSS:
- Meld u aan bij uw virtuele machine en open Logboeken.
- Open de volgende weergave: Windows Logs>Application.
- Filter huidig logboek op gebeurtenisbron met behulp van productieonderbrekingspunten of instrumentatie-engine.
- AKS
- Logboekregistratie van instrumentatie-engine op /tmp/diag/log.txt (ingesteld
MicrosoftInstrumentationEngine_FileLogPath
in DockerFile) - ProductionBreakpoint-logboekregistratie op /tmp/diag/shLog.txt
- Logboekregistratie van instrumentatie-engine op /tmp/diag/log.txt (ingesteld
Bekende problemen
- Foutopsporing van momentopnamen met meerdere Visual Studio-clients voor dezelfde App Service wordt momenteel niet ondersteund.
- Roslyn IL-optimalisaties worden niet volledig ondersteund in ASP.NET Core-projecten. Voor sommige ASP.NET Core-projecten kunt u mogelijk geen variabelen zien of bepaalde variabelen in voorwaardelijke instructies gebruiken.
- Speciale variabelen, zoals
$FUNCTION
of$CALLER
, kunnen niet worden geëvalueerd in voorwaardelijke instructies of logboekpunten voor ASP.NET Core-projecten. - Foutopsporing voor momentopnamen werkt niet in App Services waarvoor lokale caching is ingeschakeld.
- Api-apps voor foutopsporing voor momentopnamen worden momenteel niet ondersteund.
Upgrade van site-extensie
Momentopnamen opsporen en Application Insights zijn afhankelijk van een ICorProfiler, die in het siteproces wordt geladen en problemen met het vergrendelen van bestanden veroorzaakt tijdens de upgrade. We raden dit proces aan om ervoor te zorgen dat uw productiesite niet offline is.
- Maak een implementatiesite in uw App Service en implementeer uw site in de site.
- Wissel de site om met productie vanuit Cloud Explorer in Visual Studio of vanuit Azure Portal.
- Stop de site van de site. Het duurt een paar seconden om het site-w3wp.exe proces van alle exemplaren te beëindigen.
- Voer een upgrade uit van de site-extensie Site site van de Kudu-site of de Azure-portal (Update app Service Blade > Development Tools > Extensions>).
- Start de site Site. We raden u aan om de site weer op te warmen.
- Wissel de site om met productie.
Verwijzingen
- Foutopsporing in Visual Studio
- Fouten opsporen in live ASP.NET-apps met behulp van het foutopsporingsprogramma voor momentopnamen
- Fouten opsporen in live ASP.NET Azure Virtual Machines\Virtual Machines Scale Sets met behulp van het foutopsporingsprogramma voor momentopnamen
- Fouten opsporen in live ASP.NET Azure Kubernetes met behulp van het foutopsporingsprogramma voor momentopnamen
- Veelgestelde vragen over foutopsporing van momentopnamen