Vai al contenuto

Il collegamento tra il modulo IIS ARR e l’evento di controllo del registro ChannelAccess

Analisi dell’incompatibilità tra il modulo Application Request Routing (ARR) in IIS e l’evento di controllo del registro ChannelAccess, la causa di crash dei processi sui server Windows.

Rovente al centro dell’attenzione di tecnici e analisti di sistemi, la problematica legata all’interferenza fra il modulo IIS ARR (Application Request Routing) e l’evento di controllo del registro ChannelAccess offre una visione di come le complessità dei sistemi informatici possono sfociare in difficoltà di implementazione e di gestione.

Rilevato inizialmente su server appartenenti a un dominio specifico, il problema si manifesta con un errore 503 generato dal processo w3wp.exe al primo accesso, provocandone il crash continuo. Tale problema, che sembra collegato alle Direttive di Gruppo del dominio, non interviene quando viene rimossa la libreria ArrivalRequestRouter.dll dalla lista globale dei moduli IIS, segno di un’interazione problematica tra quest’ultima e l’evento ChannelAccess.

L’analisi dell’errore si muove lungo il sentiero di una serie di chiamate al codice fallite, rilevate grazie ai Time Travel Dump, senza che però venga registrato alcun errore di accesso a livello di registro o file nei log ProcMon, passaggio che rende più intricata la soluzione del problema.

La fase critica riguarda il tentativo di acquisizione di un handle del registro degli eventi di applicazione, gestito dall’evento ChannelAccess. Quest’ultimo può essere verificato tramite il comando Windows “wevtutil gl Application” eseguito in una finestra di comando con privilegi elevati.

L’output fornirà una stringa che rappresenta l’accesso ChannelAccess, una sequenza di diritti che possono essere modificati attraverso la chiave del registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\customsd. È possibile modificare manualmente questa chiave del registro o impostarla attraverso le Direttive di Gruppo.

Ad esempio, Windows di default non imposta la chiave del registro customsd e l’accesso al registro degli eventi di applicazione ChannelAccess assume un valore predefinito. Se però si imposta la chiave del registro customsd, ChannelAccess utilizzerà il valore inserito in tale chiave.

Nel problema in esame, la chiave customsd è stata impostata tramite la Direttiva di Gruppo del dominio, comportando di conseguenza l’impossibilità per tutti i server del dominio di ottenere un handle del registro degli eventi di applicazione nel codice del modulo globale di ARR RequestRouter.dll. Di conseguenza, si verifica un crash del processo w3wp quando il percorso del codice raggiunge il punto critico.

Insomma, l’impostazione del customsd obbliga a prendere in considerazione qualsiasi codice di App che utilizzi l’Evento di Log e a controllare ChannelAccess, per garantire determinati diritti. La collaborazione, dunque, tra ARR e ChannelAccess risulta tutt’altro che agevole, introducendo un problema che può generare rilevanti complicazioni sulla stabilità dei server Windows.

Il rapido avanzamento delle tecnologie digitali rende fondamentale una costante ricerca nell’ambito dei principali strumenti di gestione e programmazione. La capacità di confrontarsi con problemi tecnici e di trovare soluzioni ad alto impatto tecnologico rappresenta un valore aggiunto per qualsiasi professionista dell’IT.