Dela via


Felsöka programpoolkrascher på en virtuell Cloud Services-dator

I den här artikeln beskrivs 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

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

En process som betjänar programpoolen %1 drabbades av ett allvarligt kommunikationsfel med Windows Process Activation Service. 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. Slutkoden för processen 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 en serie fel i processen(es) som betjänar programpoolen.

Du kan konfigurera de här inställningarna i dialogrutan Avancerade inställningar för programpoolen under avsnittet Skydd mot 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, avsnittet Skydd mot snabba fel.

Steg 3: Samla in 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 med 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. I den här artikeln beskrivs 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 den nedladdning du vill använda väljer du lämplig MSI-filversion (Microsoft Windows Installer) för din datorarkitektur och väljer sedan Nästa.

  3. Öppna den hämtade 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-samling och öppna sedan den nyligen installerade appen i resultatlistan.

  2. I dialogrutan Välj regeltyp väljer du alternativet Krasch och väljer 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
    Offsetuttryck Processen för att samla in Ntdll!ZwTerminateProcess
    Åtgärdstyp Den typ av dump som samlas in Fullständig användardämpa
    Åtgärdsgräns Antalet dumpar som ska avbildas 10
  7. I dialogrutan Konfigurera brytpunkter kontrollerar du att det nya breakpoint-uttrycket visas. Välj Spara och 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-platsen till en enhet och katalog som har tillräckligt med ledigt diskutrymme, om det behövs. (Storleken på varje dumpfil matchar vad 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.

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

Kommentar

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 återvinns. 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 av antalet användardumpar 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 hämtades korrekt.

Steg 4: Analysera w3wp.exe bearbeta dumpfiler

När dumpfilen har avbildats 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ökaDiag 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 Verktygsalternativ>och inställningar. I dialogrutan Alternativ och inställningar kontrollerar du sedan att rutan Sökväg för symbolsökning efter 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 sedan lagrar dem 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 ta sedan reda på 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 processen w3wp.exe eller WaWorkerHost.exe

Information om hur du kontrollerar om det finns ohanterade undantag som gjorde att w3wp.exe eller WaWorkerHost.exe processen upphör finns i 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.