martedì 28 luglio 2009

apnet_perf.dll e l'errore Event id 1008

Questa mattina mentre controllavo una procedura notturna che lavora su Microsoft Active Directory, ho notato qualcosa che non andava: tale procedura era stranamente ancora in esecuzione e procedeva con estrema e sospetta lentezza. Cosi' dopo la consultazione dei vari log (Event Viewer di Windows e quelli generati dall'applicazione) mi sono reso conto che il problema era altrove: l'unico altro elemnto in gioco, oltre alla macchina su cui viene giornalmente eseguita l'applicazione, e' il Domain Controller di riferimento. Mi connetto al Domain Controller e vedo il registro applicazione di Windows completamente rosso e saturo dell'errore:

Tipo evento: Errore
Origine evento: Perflib
Categoria evento: Nessuno

ID evento: 1008
Data: 17/07/2008
Ora: 13.29.04
Utente: N/D
Computer: XXXXXXXX

Descrizione:
La procedura Open per il servizio "ASP.NET" nella DLL
"C:\WINNT\Microsoft.NET\Framework\v2.0.50727\aspnet_perf.dll" non è riuscita.
I dati delle prestazioni per questo servizio non sono disponibili.

Il codice di stato restituito è DWORD 0.
Dati:
0000: 05 40 00 80 .@.€

Fortuna :) il messaggio dell'errore e' abbastanza eloquente: ci sono problemi con i performance counters di aspnet.

Prima di cominciare consulto comunque la rete per verificare la presenza di eventuali note sulla KB di Microsoft o su post o forum tecnici, non si sa mai qualcuno puo' aver avuto il mio stesso problema e magari l'ha pure risolto ... ed infatti dopo una brevissima ricerca su google trovo il post
http://www.archivum.info/microsoft.public.it.winserver/2008-07/msg00748.html che, guarda caso, descrive esattamente il mio problema.

Fondamentalmente la soluzione sta nel disabilitare i performance counters di aspnet in quanto trattasi di un'issue nota a Microsoft e su cui, nel momento in cui scrivo, non hanno ancora rilasciato patch (per dovere di cornaca devo dire che il sistema affetto dall'errore e' un Windows 2000 SP4, quindi un sistema operativo ormai in disuso e fuori manutenzione). Di seguito i passaggi da me intrapresi per la risoluzione del problema:
  1. dal prompt dei comandi mi sono portato nella cartella v2.0* del .Net Framework
  2. ho lanciato il comando aspnet_regiis -ua
  3. ho riavviato la macchina
Il problema non si e' piu' ripresentato. :)


Nessun commento: