Risolvere i problemi di arresto anomalo del pool di applicazioni in una macchina virtuale Servizi cloud

Questo articolo illustra come risolvere gli arresti anomali del pool di applicazioni in una macchina virtuale in Servizi cloud di Microsoft Azure. Se un pool di applicazioni si arresta in modo anomalo, l'applicazione smette di rispondere.

Passaggio 1: Verificare la presenza di errori nei processi che servono i pool di applicazioni

In Visualizzatore eventi, se si selezionaSistema log >di Windowsnell'albero della console, è possibile che venga visualizzato uno degli eventi seguenti:

Un processo che serve il pool di applicazioni '%1' ha subito un errore di comunicazione irreversibile con il servizio Attivazione processo Windows. L'ID processo è '%2'. Il campo dati contiene il numero di errore.

Processo che serve il pool di applicazioni '%1' terminato in modo imprevisto. L'ID processo è '%2'. Il codice di uscita del processo è '%3'.

Questi eventi indicano chiaramente un arresto anomalo del pool di applicazioni. Poiché si è verificato un problema all'interno dell'applicazione, è stato necessario terminare il pool di applicazioni. Al termine del pool di applicazioni, viene terminato anche il processo diw3wp.exe corrispondente. Tutte le informazioni basate sulla cache o sulla sessione salvate all'interno del processo w3wp.exe verranno cancellate.

Idealmente, quando un pool di applicazioni si arresta in modo anomalo, viene generato automaticamente un nuovo processo diw3wp.exe per rispettare le richieste in ingresso. Tuttavia, se il pool di applicazioni si arresta in modo anomalo più di cinque volte in un periodo di cinque minuti, il pool di applicazioni passa in uno stato arrestato. Sarà necessario riavviare manualmente il pool di applicazioni per renderlo operativo. Se si verifica un problema simile, si osserverà l'evento seguente nei log di sistema in Visualizzatore eventi:

Il pool di applicazioni '%1' viene disabilitato automaticamente a causa di una serie di errori nel processo che serve il pool di applicazioni.

È possibile configurare queste impostazioni nella finestra di dialogo Impostazioni avanzate del pool di applicazioni nella sezione Protezione con errori rapidi . Il valore predefinito della proprietà Enabled è True. Se la proprietà Enabled è Impostata su True, il pool di applicazioni verrà interrotto dopo il raggiungimento del limite di errore entro un determinato periodo di tempo. Il limite di errore è rappresentato dalla proprietà Maximum Failures . Il valore predefinito di questa proprietà è 5. L'intervallo di tempo è rappresentato dalla proprietà Intervallo di errore (minuti). Anche questa proprietà è impostata su 5.

Screenshot della finestra di dialogo Impostazioni avanzate del pool di applicazioni Rapid-Fail sezione Protezione.

Passaggio 3: Acquisire i file di dump del processo w3wp.exe

Dopo aver stabilito che l'applicazione si è arrestata in modo anomalo, determinare esattamente il motivo per cui si è arrestata in modo anomalo. Sarà necessario acquisire un file di dump del processo w3wp.exe poco prima che venga terminato. Esistono molti modi per acquisire questo file. È possibile configurare Segnalazione errori Windows (WER), ProcDump e DebugDiag per acquisire un file di dump di arresto anomalo del sistema. Questo articolo illustra solo il metodo DebugDiag per l'acquisizione dei dati.

Per scaricare e installare DebugDiag, seguire questa procedura:

  1. Passare al sito Strumento di diagnostica di debug v2 e quindi selezionare Scarica.

  2. In Scegliere il download desiderato selezionare la versione del file di Microsoft Windows Installer (MSI) appropriata per l'architettura del computer e quindi selezionare Avanti.

  3. Aprire il file scaricato. Nella configurazione guidata accettare le opzioni predefinite e quindi completare l'installazione dell'app.

Per configurare l'applicazione DebugDiag 2 Collection , seguire questa procedura:

  1. Selezionare Start, immettere DebugDiag 2 Collection e quindi aprire l'app appena installata dall'elenco dei risultati.

  2. Nella finestra di dialogo Seleziona tipo di regola selezionare l'opzione Arresto anomalo e quindi selezionare Avanti.

  3. Nella finestra di dialogo Seleziona tipo di destinazione selezionare l'opzione Pool di applicazioni Web IIS specifico e quindi selezionare Avanti.

  4. Nella finestra di dialogo Seleziona destinazione selezionare il pool di applicazioni specifico che si arresta in modo anomalo e quindi selezionare Avanti. Se si apre una finestra che indica che la gestione di Internet Information Services (IIS) non è installata e che i pool di applicazioni non verranno elencati, selezionare OK e quindi immettere manualmente il nome dell'applicazione.

  5. Nella finestra di dialogo Configurazione avanzata (facoltativo) selezionare Punti di interruzione>Aggiungi punto di interruzione.

  6. Effettuare le selezioni seguenti per creare un nuovo punto di interruzione e quindi selezionare OK.

    Campo Descrizione Valore
    Espressione offset Processo da acquisire Ntdll!ZwTerminateProcess
    Tipo di azione Tipo di dump acquisito Userdump completo
    Limite azione Numero di dump da acquisire 10
  7. Nella finestra di dialogo Configura punti di interruzione verificare che venga visualizzato il nuovo elemento Espressione punto di interruzione . Selezionare Salva & Chiudi per tornare alla finestra di dialogo Configurazione avanzata (facoltativo) e quindi selezionare Avanti per attivare il punto di interruzione.

  8. Nella finestra di dialogo Seleziona percorso dump e nome regola (facoltativo) immettere un nome di regola e quindi impostare Percorso userdump su un'unità e una directory con spazio su disco sufficiente, se necessario. Le dimensioni di ogni file di dump corrisponderanno a ciò che viene utilizzato dal processo diw3wp.exe in memoria.

  9. Seleziona Avanti.

  10. Per attivare la regola, selezionare Fine.

A questo punto, la regola di arresto anomalo è in uno stato attivo e il numero di userdump è 0. Quando si verifica il problema, il numero di dump aumenta immediatamente e viene generato un file di dump corrispondente.

Nota

Un normale riciclo del pool di applicazioni può anche attivare un file di dump. Ciò si verifica perché, quando viene riciclato, cambia l'ID del processo di w3wp.exe corrispondente del pool di applicazioni . Viene generato un file di dump. Questo file è un falso positivo. Pertanto, non consente di analizzare l'arresto anomalo del pool di applicazioni. Ogni volta che viene visualizzato un incremento nel numero di userdump, controllare i log eventi per verificare se si sono verificati gli eventi di arresto anomalo previsti. Se gli eventi sono come previsto, il dump acquisito è corretto.

Passaggio 4: Analizzare i file di dump del processo w3wp.exe

Dopo aver acquisito il file di dump, è possibile aprire Avvia>debugDiag 2 Analysis. Questa applicazione consente di analizzare il file di dump dell'arresto anomalo acquisito.

Assicurarsi che il percorso del simbolo sia impostato correttamente. Si tratta di un processo in due parti. In DebugDiag 2 Analysis (Analisidiag 2) selezionare Impostazioni (icona a ingranaggio). In Percorsi di ricerca simboli da usare per l'analisi verificare che siano selezionati _NT_SYMBOL_PATH e Server di simboli pubblici Microsoft .

Riaprire Debug RaccoltaDiag 2 e selezionareOpzioni e impostazionidegli strumenti>. Quindi, nella finestra di dialogo Opzioni & Impostazioni verificare che la casella Simbolo Search Percorso per il debug (ad esempio Regole di arresto anomalo) sia impostata su srv*c:\symcache*https://msdl.microsoft.com/download/symbols. Questo percorso fa sì che DebugDiag scarichi i simboli in base alle esigenze dal server di simboli pubblici Microsoft e li archivi nella directory c:\symcache .

Dopo aver modificato o verificato le impostazioni del percorso dei simboli, è possibile analizzare i file di dump acquisiti. Per avviare l'analisi, tornare a DebugDiag 2 Analysis e quindi fare doppio clic sul nome di un file di dump. Dopo aver generato il report, è possibile aprirlo nel browser e comprendere lo stack di chiamate del thread che ha attivato l'espressione del punto di interruzione. Leggere lo stack di chiamate dal basso verso l'alto e quindi determinare quale metodo o componente ha attivato l'arresto anomalo del pool di applicazioni. Se non è possibile trovare uno stack di chiamate di eccezioni preciso, esaminare ulteriormente lo stack di chiamate .NET nella stessa analisi del file di dump.

Passaggio 5: Verificare la presenza di eccezioni non gestite nel processo di w3wp.exe o WaWorkerHost.exe

Per verificare anche la presenza di eccezioni non gestite che hanno causato l'arresto del processow3wp.exe o WaWorkerHost.exe , vedere Eccezioni non gestite che causano ASP. Applicazioni basate su NET per uscire in modo imprevisto in .NET Framework.

Dichiarazione di non responsabilità sulle informazioni di terze parti

I prodotti di terzi citati in questo articolo sono prodotti da società indipendenti da Microsoft. Microsoft non rilascia alcuna garanzia implicita o esplicita relativa alle prestazioni o all'affidabilità di tali prodotti

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.