Rozwiązywanie problemów z awariami puli aplikacji na maszynie wirtualnej usług Cloud Services
W tym artykule omówiono sposób rozwiązywania problemów z awariami puli aplikacji na maszynie wirtualnej w usługach Microsoft Azure Cloud Services. Jeśli pula aplikacji ulegnie awarii, aplikacja przestanie odpowiadać.
Krok 1. Sprawdzanie błędów w procesach obsługujących pule aplikacji
W Podgląd zdarzeń, jeśli wybierzesz system dzienników>systemu Windows w drzewie konsoli, może zostać wyświetlone jedno z następujących zdarzeń:
Proces obsługujący pulę aplikacji %1 doznał krytycznego błędu komunikacji z usługą aktywacji procesów systemu Windows. Identyfikator procesu: %2. Pole danych zawiera numer błędu.
Proces obsługujący pulę aplikacji %1 został nieoczekiwanie zakończony. Identyfikator procesu: %2. Kod zakończenia procesu: %3.
Te zdarzenia wyraźnie wskazują awarię puli aplikacji. Ponieważ wystąpił problem w aplikacji, pula aplikacji musiała zostać zakończona. Po zakończeniu puli aplikacji zostanie również zakończony odpowiedni proces w3wp.exe . Wszystkie informacje oparte na pamięci podręcznej lub oparte na sesji zapisane w procesie w3wp.exe zostaną usunięte.
Krok 2. Sprawdzanie, czy pula aplikacji została automatycznie wyłączona z powodu powiązanych błędów procesów
W idealnym przypadku, gdy pula aplikacji ulegnie awarii, nowy proces w3wp.exe zostanie automatycznie zduplikowany w celu obsługi żądań przychodzących. Jeśli jednak pula aplikacji ulegnie awarii ponad pięć razy w ciągu pięciu minut, pula aplikacji przejdzie w stan zatrzymania. Musisz ręcznie uruchomić pulę aplikacji, aby ją uruchomić i uruchomić. Jeśli wystąpi coś podobnego, zobaczysz następujące zdarzenie w dziennikach systemowych w Podgląd zdarzeń:
Pula aplikacji %1 jest automatycznie wyłączona z powodu serii błędów w procesie obsługującym pulę aplikacji.
Te ustawienia można skonfigurować w oknie dialogowym Ustawienia zaawansowane tej puli aplikacji w sekcji Szybka ochrona po awarii. Właściwość Enabled ma wartość domyślną True. Jeśli właściwość Enabled ma wartość True, pula aplikacji zostanie zatrzymana po osiągnięciu limitu awarii w określonym czasie. Limit awarii jest reprezentowany przez właściwość Maximum Failures . Ta właściwość ma wartość domyślną 5. Przedział czasu jest reprezentowany przez właściwość Interwał niepowodzenia (w minutach). Ta właściwość jest również domyślnie ustawiona na 5.
Krok 3. Przechwytywanie plików zrzutu procesu w3wp.exe
Po ustaleniu, że aplikacja uległa awarii, określ dokładnie, dlaczego uległa awarii. Przed zakończeniem procesu w3wp.exe należy przechwycić plik zrzutu. Istnieje wiele sposobów przechwytywania tego pliku. Możesz skonfigurować Raportowanie błędów systemu Windows (WER), ProcDump i DebugDiag w celu przechwycenia pliku zrzutu awaryjnego. W tym artykule omówiono tylko metodę DebugDiag przechwytywania danych.
Aby pobrać i zainstalować narzędzie DebugDiag, wykonaj następujące kroki:
Przejdź do witryny Narzędzia diagnostycznego debugowania w wersji 2 , a następnie wybierz pozycję Pobierz.
W obszarze Wybierz żądany plik wybierz odpowiednią wersję pliku Instalatora Windows (MSI) dla architektury komputera, a następnie wybierz przycisk Dalej.
Otwórz pobrany plik. W kreatorze instalacji zaakceptuj opcje domyślne, a następnie zakończ instalowanie aplikacji.
Aby skonfigurować aplikację DebugDiag 2 Collection , wykonaj następujące kroki:
Wybierz pozycję Start, wprowadź ciąg DebugDiag 2 Collection, a następnie otwórz nowo zainstalowaną aplikację z listy wyników.
W oknie dialogowym Wybieranie typu reguły wybierz opcję Awaria, a następnie wybierz przycisk Dalej.
W oknie dialogowym Wybieranie typu docelowego wybierz opcję Określona pula aplikacji internetowych usług IIS, a następnie wybierz pozycję Dalej.
W oknie dialogowym Wybieranie elementu docelowego wybierz określoną pulę aplikacji, która ulega awarii, a następnie wybierz przycisk Dalej. Jeśli zostanie otwarte okno z informacją, że zarządzanie usługami Internet Information Services (IIS) nie jest zainstalowane i że pule aplikacji nie zostaną wyświetlone, wybierz przycisk OK, a następnie wprowadź nazwę aplikacji ręcznie.
W oknie dialogowym Konfiguracja zaawansowana (opcjonalnie) wybierz pozycję Punkty>przerwania Dodaj punkt przerwania.
Wybierz następujące opcje, aby utworzyć nowy punkt przerwania, a następnie wybierz przycisk OK.
Pole Opis Wartość Wyrażenie przesunięcia Proces przechwytywania Ntdll!ZwTerminateProcess Typ akcji Typ przechwyconego zrzutu Pełna userdump Limit akcji Liczba zrzutów do przechwycenia 10 W oknie dialogowym Konfigurowanie punktów przerwania sprawdź, czy jest wyświetlany nowy element wyrażenia punktu przerwania. Wybierz pozycję Zapisz i zamknij , aby powrócić do okna dialogowego Konfiguracja zaawansowana (opcjonalnie), a następnie wybierz przycisk Dalej , aby aktywować punkt przerwania.
W oknie dialogowym Wybieranie lokalizacji zrzutu i nazwy reguły (opcjonalnie) wprowadź nazwę reguły, a następnie zmień lokalizację userdump na dysk i katalog, który ma wystarczającą ilość wolnego miejsca na dysku, jeśli jest to konieczne. (Rozmiar każdego pliku zrzutu będzie zgodny z tym, co jest używane przez proces w3wp.exe w pamięci).
Wybierz Dalej.
Aby aktywować regułę, wybierz pozycję Zakończ.
Teraz reguła awarii jest w stanie aktywnym, a liczba userdump wynosi 0. Gdy wystąpi problem, liczba zrzutów natychmiast się zwiększa i jest generowany odpowiedni plik zrzutu.
Uwaga 16.
Normalny kosz puli aplikacji może również wyzwolić plik zrzutu. Dzieje się tak, ponieważ w przypadku recyklingu odpowiedni identyfikator procesu (PID) puli aplikacji zmienia się w odpowiedniej w3wp.exe identyfikatorze procesu. Spowoduje to wygenerowanie pliku zrzutu. Ten plik jest fałszywie dodatni. W związku z tym nie pomoże Ci to przeanalizować awarii puli aplikacji. Za każdym razem, gdy zobaczysz przyrost liczby elementów userdump, sprawdź dzienniki zdarzeń, aby sprawdzić, czy wystąpiły oczekiwane zdarzenia awarii. Jeśli zdarzenia są zgodne z oczekiwaniami, zrzut przechwycony jest poprawny.
Krok 4. Analizowanie plików zrzutu procesu w3wp.exe
Po przechwyceniu pliku zrzutu możesz otworzyć plik Start>DebugDiag 2 Analysis. Ta aplikacja umożliwia analizowanie przechwyconego pliku zrzutu awaryjnego.
Upewnij się, że ścieżka symbolu jest ustawiona poprawnie. Jest to proces dwuczęściowy. W obszarze DebugDiag 2 Analysis (Analiza debugowania 2) wybierz pozycję Ustawienia (ikona koła zębatego). W obszarze Ścieżki wyszukiwania symboli do użycia na potrzeby analizy sprawdź, czy wybrano _NT_SYMBOL_PATH i serwery symboli publicznych firmy Microsoft.
Otwórz ponownie kolekcję DebugDiag 2 i wybierz pozycję Narzędzia>Opcje i ustawienia. Następnie w oknie dialogowym Opcje i ustawienia upewnij się, że ścieżka wyszukiwania symboli do debugowania (tj. reguły awarii) jest ustawiona na wartość srv*c:\symcache*https://msdl.microsoft.com/download/symbols. Ta ścieżka powoduje, że narzędzie DebugDiag pobiera symbole zgodnie z potrzebami z publicznego serwera symboli firmy Microsoft, a następnie przechowuje je w katalogu c:\symcache .
Po zmianie lub zweryfikowaniu ustawień ścieżki symbolu możesz przeanalizować przechwycone pliki zrzutu. Aby rozpocząć analizę, wróć do narzędzia DebugDiag 2 Analysis, a następnie kliknij dwukrotnie nazwę pliku zrzutu. Po wygenerowaniu raportu można go otworzyć w przeglądarce i zrozumieć stos wywołań wątku, który wyzwolił wyrażenie punktu przerwania. Odczytaj stos wywołań od dołu do góry, a następnie określ, która metoda lub składnik wyzwolił awarię puli aplikacji. Jeśli nie możesz znaleźć dokładnego stosu wywołań wyjątków, przyjrzyj się dokładniej stosowi wywołań platformy .NET w tej samej analizie pliku zrzutu.
Krok 5. Sprawdzanie nieobsługiwane wyjątki w procesie w3wp.exe lub WaWorkerHost.exe
Aby również sprawdzić, czy nieobsługiwane wyjątki spowodowały zatrzymanie procesu w3wp.exe lub WaWorkerHost.exe , zobacz Nieobsługiwane wyjątki powodują asp. Aplikacje oparte na platformie NET nieoczekiwanie zamykają się w programie .NET Framework.
Zastrzeżenie dotyczące innych firm
Produkty innych firm omówione w tym artykule są wytwarzane przez producentów niezależnych od firmy Microsoft. Firma Microsoft nie udziela żadnych gwarancji, dorozumianych ani żadnego innego rodzaju, w odniesieniu do wydajności lub niezawodności tych produktów.
Skontaktuj się z nami, aby uzyskać pomoc
Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.