Dela via


Felsöka programpoolskrascher på en Cloud Services virtuell dator

Den här artikeln beskriver hur du löser programpoolskrascher på en virtuell dator (VM) i Microsoft Azure Cloud Services. Om en programpool kraschar slutar programmet att svara.

Steg 1: Sök efter fel i processer som hanterar programpooler

Om du väljer Windows Logs>System i konsolträdet i Loggboken kan någon av följande händelser visas:

En process som betjänar programpoolen %1 drabbades av ett allvarligt kommunikationsfel med Windows processaktiveringstjänst. Process-ID:t var %2. Datafältet innehåller felnumret.

En process som betjänar programpoolen %1 avslutades oväntat. Process-ID:t var %2. Processens slutkod var %3.

Dessa händelser indikerar tydligt att en programpool kraschar. Eftersom något gick fel i programmet måste programpoolen avslutas. När programpoolen har avslutats avslutas även motsvarande w3wp.exe process. Cachebaserad eller sessionsbaserad information som du sparade i w3wp.exe processen raderas.

När en programpool kraschar skapas en ny w3wp.exe process automatiskt för att uppfylla inkommande begäranden. Men om programpoolen kraschar mer än fem gånger inom fem minuter hamnar programpoolen i ett stoppat tillstånd. Du måste starta om programpoolen manuellt för att få igång den. Om något liknande inträffar ser du följande händelse under systemloggarna i Loggboken:

Programpoolen %1 inaktiveras automatiskt på grund av ett antal fel i den process (es) som betjänar programpoolen.

Du kan konfigurera de här inställningarna i dialogrutan Avancerade inställningar för programpoolen under avsnittet Skydd efter snabba fel . Egenskapen Aktiverad har standardvärdet True. Om egenskapen Aktiverad är True stoppas programpoolen när felgränsen har nåtts inom en viss tid. Felgränsen representeras av egenskapen Maximalt antal fel . Den här egenskapen har standardvärdet 5. Tidsintervallet representeras av egenskapen Felintervall (minuter). Den här egenskapen är också standard 5.

Skärmbild av dialogrutan Avancerade inställningar för programpoolen i avsnittet Rapid-Fail Protection.

Steg 3: Avbilda w3wp.exe processdumpfiler

När du har fastställt att programmet kraschade avgör du exakt varför det kraschade. Du måste samla in en dumpfil av w3wp.exe processen precis innan den avslutas. Det finns många sätt att samla in den här filen. Du kan konfigurera Windows Felrapportering (WER), ProcDump och DebugDiag för att samla in en kraschdumpfil. Den här artikeln beskriver endast metoden DebugDiag för att samla in data.

Följ dessa steg för att ladda ned och installera DebugDiag:

  1. Gå till webbplatsen Felsökningsdiagnostikverktyg v2 och välj sedan Ladda ned.

  2. För Välj önskad nedladdning väljer du lämplig MICROSOFT Windows Installer-filversion (MSI) för din datorarkitektur och väljer sedan Nästa.

  3. Öppna den nedladdade filen. I installationsguiden godkänner du standardalternativen och slutför sedan installationen av appen.

Så här konfigurerar du samlingsprogrammet DebugDiag 2 :

  1. Välj Start, ange DebugDiag 2 Collection (DebugDiag 2-samling) och öppna sedan den nyligen installerade appen i resultatlistan.

  2. I dialogrutan Välj regeltyp väljer du alternativet Krasch och sedan Nästa.

  3. I dialogrutan Välj måltyp väljer du alternativet A specifik IIS-webbprogrampool och väljer sedan Nästa.

  4. I dialogrutan Välj mål väljer du den specifika programpool som kraschar och väljer sedan Nästa. Om ett fönster öppnas som anger att IIS-hanteringen (Internet Information Services) inte är installerad och programpoolerna inte visas väljer du OK och anger sedan programnamnet manuellt.

  5. I dialogrutan Avancerad konfiguration (valfritt) väljer du Brytpunkter>Lägg till brytpunkt.

  6. Gör följande val för att skapa en ny brytpunkt och välj sedan OK.

    Fält Beskrivning Värde
    Förskjutningsuttryck Processen att samla in Ntdll!ZwTerminateProcess
    Åtgärdstyp Den typ av dump som samlas in Fullständig användardump
    Åtgärdsgräns Antalet dumpar som ska avbildas 10
  7. I dialogrutan Konfigurera brytpunkter kontrollerar du att det nya objektet Brytpunktsuttryck visas. Välj Spara & Stäng för att återgå till dialogrutan Avancerad konfiguration (valfritt) och välj sedan Nästa för att aktivera brytpunkten.

  8. I dialogrutan Välj dumpplats och regelnamn (valfritt) anger du ett regelnamn och ändrar sedan Userdump Location till en enhet och katalog som har tillräckligt med ledigt diskutrymme, om det behövs. (Storleken på varje dumpfil matchar det som förbrukas av w3wp.exe processen i minnet.)

  9. Välj Nästa.

  10. Om du vill aktivera regeln väljer du Slutför.

Kraschregeln är nu i ett aktivt tillstånd och Userdump Count är 0. När problemet uppstår ökar antalet dumpar omedelbart och en motsvarande dumpfil genereras.

Obs!

En normal återanvändning av programpoolen kan också utlösa en dumpfil. Detta beror på att programpoolens motsvarande w3wp.exe process-ID (PID) ändras när den återanvänds. Detta genererar en dumpfil. Den här filen är en falsk positiv identifiering. Därför hjälper det dig inte att analysera programpoolkraschen. När du ser en ökning i antalet användare kontrollerar du händelseloggarna för att se om de förväntade kraschhändelserna inträffade. Om händelserna är som förväntat är dumpen som registrerades korrekt.

Steg 4: Analysera w3wp.exe bearbeta dumpfiler

När dumpfilen har hämtats kan du öppna Starta>felsökningDiag 2-analys. Med det här programmet kan du analysera den insamlade kraschdumpfilen.

Kontrollera att symbolsökvägen har angetts korrekt. Det här är en process i två delar. I DebugDiag 2 Analysis (FelsökningDiag 2-analys) väljer du Inställningar (kugghjulsikonen). Under Sökvägar för symbol som ska användas för analys kontrollerar du att _NT_SYMBOL_PATH och Microsofts offentliga symbolservrar har valts.

Öppna DebugDiag 2-samlingen igen och välj Verktyg>Alternativ och inställningar. I dialogrutan Alternativ & Inställningar kontrollerar du sedan att rutan Symbol Search sökväg för felsökning (d.v.s. kraschregler) är inställd på srv*c:\symcache*https://msdl.microsoft.com/download/symbols. Den här sökvägen gör att DebugDiag laddar ned symboler efter behov från Microsofts offentliga symbolserver och lagrar dem sedan i katalogen c:\symcache .

När du har ändrat eller verifierat inställningarna för symbolsökvägen kan du analysera de insamlade dumpfilerna. Starta analysen genom att gå tillbaka till DebugDiag 2 Analysis och dubbelklicka sedan på namnet på en dumpfil. När rapporten har genererats kan du öppna den i webbläsaren och förstå anropsstacken för tråden som utlöste brytpunktsuttrycket. Läs anropsstacken nedifrån och upp och bestäm sedan vilken metod eller komponent som utlöste att programpoolen kraschade. Om du inte hittar en exakt undantagsanropsstack kan du titta närmare på .NET-anropsstacken i samma dumpfilanalys.

Steg 5: Sök efter ohanterade undantag i w3wp.exe- eller WaWorkerHost.exe processen

Om du även vill söka efter ohanterade undantag som orsakade att w3wp.exe eller WaWorkerHost.exe processen stoppas kan du läsa Avsnittet om ohanterade undantag orsakar ASP. NET-baserade program avslutas oväntat i .NET Framework.

Ansvarsfriskrivning för information från tredje part

De produkter från andra tillverkare som diskuteras i denna artikel tillverkas oberoende av Microsoft. Produkternas funktion eller tillförlitlighet kan därför inte garanteras.

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.