Risolvere gli arresti anomali 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 (VM) in Servizi cloud di Microsoft Azure. Se un pool di applicazioni si arresta in modo anomalo, l'applicazione smetterà di rispondere.
Passaggio 1: Verificare la presenza di errori nei processi che gestiscono i pool di applicazioni
In Visualizzatore eventi, se si seleziona Sistema log>di Windows nell'albero della console, è possibile che venga visualizzato uno degli eventi seguenti:
Un processo che gestisce il pool di applicazioni '%1' ha subito un errore di comunicazione irreversibile con il servizio di attivazione del processo di Windows. L'ID del processo è '%2'. Il campo dati contiene il numero di errore.
Processo che gestisce il pool di applicazioni '%1' terminato in modo imprevisto. L'ID del 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, il pool di applicazioni doveva essere terminato. Al termine del pool di applicazioni, viene terminato anche il processo di w3wp.exe corrispondente. Tutte le informazioni basate sulla cache o basate su sessione salvate all'interno del processo di w3wp.exe verranno cancellate.
Passaggio 2: Verificare se il pool di applicazioni è stato disabilitato automaticamente a causa di errori di processo correlati
Idealmente, quando un pool di applicazioni si arresta in modo anomalo, viene generato automaticamente un nuovo processo di w3wp.exe per rispettare le richieste in ingresso. Tuttavia, se il pool di applicazioni si arresta in modo anomalo più di cinque volte entro un periodo di cinque minuti, il pool di applicazioni entra in uno stato di arresto. Sarà necessario riavviare manualmente il pool di applicazioni per renderlo operativo. Se si verifica un evento 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(es) che gestisce il pool di applicazioni.
È possibile configurare queste impostazioni nella finestra di dialogo Impostazioni avanzate del pool di applicazioni, nella sezione Protezione con errori rapidi. La proprietà Enabled ha un valore predefinito True. Se la proprietà Enabled è Impostata su True, il pool di applicazioni verrà arrestato dopo il raggiungimento del limite di errori entro un determinato periodo di tempo. Il limite di errori è rappresentato dalla proprietà Maximum Failures . Questa proprietà ha un valore predefinito pari a 5. L'intervallo di tempo è rappresentato dalla proprietà Intervallo di errore (minuti). Anche questa proprietà è impostata su 5.
Passaggio 3: Acquisire i file di dump del processo di w3wp.exe
Dopo aver determinato che l'applicazione si è arrestata in modo anomalo, determinare esattamente il motivo per cui si è verificato l'arresto anomalo. Sarà necessario acquisire un file dump del processo di w3wp.exe subito prima che termini. 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:
Passare al sito Dello strumento di diagnostica di debug v2 e quindi selezionare Scarica.
Per Scegliere il download desiderato, selezionare la versione del file di Microsoft Windows Installer (MSI) appropriata per l'architettura del computer e quindi selezionare Avanti.
Aprire il file scaricato. Nell'installazione guidata accettare le opzioni predefinite e quindi completare l'installazione dell'app.
Per configurare l'applicazione DebugDiag 2 Collection , seguire questa procedura:
Selezionare Start, immettere DebugDiag 2 Collection e quindi aprire l'app appena installata nell'elenco dei risultati.
Nella finestra di dialogo Seleziona tipo di regola selezionare l'opzione Arresto anomalo e quindi selezionare Avanti.
Nella finestra di dialogo Seleziona tipo di destinazione selezionare l'opzione Pool di applicazioni Web IIS specifico e quindi selezionare Avanti.
Nella finestra di dialogo Seleziona destinazione selezionare il pool di applicazioni specifico che si arresta in modo anomalo e quindi selezionare Avanti. Se viene visualizzata 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.
Nella finestra di dialogo Configurazione avanzata (facoltativo) selezionare Punti di interruzione> Aggiungi punto di interruzione.
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 azioni Numero di dump da acquisire 10 Nella finestra di dialogo Configura punti di interruzione verificare che sia visualizzato il nuovo elemento Espressione punto di interruzione. Selezionare Salva e chiudi per tornare alla finestra di dialogo Configurazione avanzata (facoltativo) e quindi selezionare Avanti per attivare il punto di interruzione.
Nella finestra di dialogo Seleziona percorso dump e nome regola (facoltativo) immettere un nome regola, quindi modificare il percorso userdump in un'unità e una directory con spazio su disco sufficiente, se necessario. Le dimensioni di ogni file di dump corrispondono a ciò che viene utilizzato dal processo di w3wp.exe in memoria.
Seleziona Avanti.
Per attivare la regola, selezionare Fine.
A questo punto, la regola di arresto anomalo si trova in uno stato attivo e userdump Count è 0. Quando si verifica il problema, il conteggio dei dump aumenta immediatamente e viene generato un file di dump corrispondente.
Note
Un normale riciclo del pool di applicazioni può anche attivare un file di dump. Ciò si verifica perché, quando viene riciclato, il pool di applicazioni corrispondente w3wp.exe ID processo (PID) cambia. Verrà generato un file di dump. Questo file è un falso positivo. Di conseguenza, non consente di analizzare l'arresto anomalo del pool di applicazioni. Ogni volta che viene visualizzato un incremento nel conteggio userdump, controllare i registri 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 di w3wp.exe
Dopo aver acquisito il file di dump, è possibile aprire Avvia>debugDiag 2 Analysis. Questa applicazione consente di analizzare il file di dump di arresto anomalo del sistema acquisito.
Assicurarsi che il percorso del simbolo sia impostato correttamente. Si tratta di un processo in due parti. In DebugDiag 2 Analysis selezionare Impostazioni (icona a forma di ingranaggio). In Percorsi di ricerca simboli da usare per l'analisi verificare che siano selezionati _NT_SYMBOL_PATH e i server di simboli pubblici Microsoft.
Riaprire DebugDiag 2 Raccolta e selezionare Opzioni e impostazioni degli strumenti>. Quindi, nella finestra di dialogo Opzioni e impostazioni verificare che la casella Percorso di ricerca simboli per 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 dei simboli pubblici Microsoft e quindi li archivii 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 eccezione preciso, esaminare ulteriormente lo stack di chiamate .NET nella stessa analisi dei file di dump.
Passaggio 5: Verificare la presenza di eccezioni non gestite nel processo di w3wp.exe o di WaWorkerHost.exe
Per verificare anche la presenza di eccezioni non gestite che hanno causato l'arresto del processo di w3wp.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.