Segnalazione e diagnosi degli errori

In questo argomento vengono descritte le funzionalità disponibili in StreamInsight per gestire errori di processi e di query e per generare dump per l'ulteriore diagnosi dei problemi. Nei sistemi operativi Windows Vista e Windows Server 2008 e versioni successive StreamInsight utilizza Segnalazione errori di Windows per la segnalazione degli errori e la generazione di dump. Nei sistemi operativi Windows XP e Windows Server 2003 StreamInsight utilizza la versione di Dr. Watson (DW20.exe e DWWin.exe) inclusa in .NET 3.5 per la segnalazione degli errori e la generazione di dump.

L'utilizzo di questi strumenti standard del sistema operativo Windows per la segnalazione degli errori e la generazione di dump in StreamInsight significa che quest'ultimo si basa sul consenso dell'utente per la segnalazione degli errori impostato a livello di sistema operativo Windows. Quando il consenso dell'utente per la segnalazione degli errori è abilitato a livello di sistema operativo, le segnalazioni degli errori e i dump per le applicazioni client vengono inviati automaticamente a Microsoft e i dump vengono rimossi dal server locale. Per esaminare i dump ai fini della risoluzione dei problemi, è necessario disabilitare la segnalazione degli errori. Rivolgersi all'amministratore del server che esegue l'applicazione StreamInsight per determinare se la segnalazione degli errori è abilitata nel computer. Per modificare le impostazioni, procedere come descritto nelle sezioni seguenti.

Generazione di dump

Vi sono due scenari in cui vengono generati dump per l'applicazione StreamInsight.

Errori di processo

È possibile distribuire StreamInsight in una configurazione basata su server incorporato o in una configurazione basata su server ospitato. Per le eccezioni non gestite globali in una di queste configurazioni, l'errore è simile a un errore in qualsiasi applicazione CLR e il sistema operativo Windows genera un dump del processo. Si supponga, ad esempio, un'eccezione non gestita generata in un modulo richiamato in un thread separato da una funzione o da un operatore definito dall'utente oppure un'eccezione non gestita dall'adattatore.

Errori di query

Un'eccezione in una query di StreamInsight potrebbe non necessariamente comportare un errore di processo di StreamInsight nella configurazione basata su server incorporato o ospitato. Si supponga, ad esempio, un'eccezione generata da una funzione o da un operatore definito dall'utente. È possibile instrumentare la query dell'applicazione utilizzando l'API di diagnostica di StreamInsight per generare dump del debug a livello di codice, come illustrato nell'esempio seguente. Si noti, tuttavia, che per Windows XP e Windows Server 2003 la generazione di dump provocherà un errore del processo. Ciò non avviene con Windows Vista e Windows Server 2008 e versioni successive. 

Server server = Server.Create(...);  // or Server.Connect(...) if this is a client application connecting to a server.
...
// Generate error reports when a query fails.
DiagnosticSettings settings = new DiagnosticSettings(DiagnosticAspect.GenerateErrorReports, DiagnosticLevel.Always);
server.SetDiagnosticSettings(new Uri("cep:/Server"), settings);
Nota di attenzioneAttenzione

I file di dump del debug possono contenere informazioni sensibili. Per proteggere tali informazioni, è possibile utilizzare un elenco di controllo di accesso per limitare l'accesso ai file oppure copiare i file in una cartella con accesso limitato. Prima di inviare i file di debug ai servizi di supporto tecnico Microsoft, è consigliabile rimuovere tutte le informazioni sensibili o riservate.

Segnalazione degli errori

Per impostazione predefinita, le segnalazioni errori vengono inviate a Microsoft quando è abilitato il consenso dell'utente per la segnalazione degli errori.

Windows Vista e Windows Server 2008 e versioni successive

Errore di processo

Qualsiasi applicazione Windows può incorporare il server StreamInsight. Quando si verifica un errore nel file eseguibile dell'applicazione, l'impostazione del consenso dell'utente per la segnalazione degli errori determina se l'errore verrà inviato a Microsoft. A seconda della causa dell'errore, lo stack di chiamate e altre informazioni di StreamInsight possono essere inclusi nel dump dell'errore. In StreamInsight non è inclusa alcuna strumentazione per intervenire in tale processo.

Errore di query

La segnalazione degli errori di query segue gli stessi criteri di consenso descritti in precedenza per la segnalazione degli errori di processo. Dopo avere abilitato a livello di codice la generazione di dump per gli errori di query come descritto in precedenza, tuttavia, è possibile scegliere di mantenere i dump e gli errori nel server locale in cui si è verificato l'errore.

A tale scopo, è necessario disabilitare la segnalazione degli errori automatizzata per StreamInsight tramite l'impostazione della chiave del Registro di sistema seguente.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\Consent]

"StreamInsightDump"=dword:00000001

Per gli scenari di errore e di processo, è possibile esaminare gli errori visualizzando Segnalazione di problemi e soluzioni nel Pannello di controllo. Per visualizzare gli errori in Windows 7 e Windows Server 2008 R2, dal Pannello di controllo fare clic su Centro operativo, Manutenzione, Visualizza cronologia affidabilità, quindi su Visualizza tutte le segnalazioni dei problemi. Gli errori vengono segnalati rispetto al nome dell'applicazione, ad esempio MyApplication_name.exe, o a StreamInsightHost.exe.

Windows XP e Windows 2003

Per disabilitare la segnalazione degli errori, e in tal modo salvare i dump nell'host locale, seguire le istruzioni incluse in questo articolo del supporto tecnico Microsoft. Le segnalazioni errori vengono accodate e inserite nella directory %USERPROFILE%\Local Settings\Application Data\PCHealth\ErrorRep o %SYSTEMROOT%\PCHEALTH\ErrorRep\QSignoff.

Gli amministratori con accesso all'interfaccia di segnalazione degli errori possono visualizzare gli errori nella coda e scegliere di inviare gli errori a Microsoft in base a ogni singolo caso. Il sistema operativo applica un limite massimo al numero di voci nella coda. Il limite dipende da parametri di sistema. Quando questo limite viene superato, nel sistema operativo non vengono accodate altre segnalazioni errori. È consigliabile, pertanto, che un amministratore controlli tali code regolarmente per determinare gli errori che richiedono ulteriori indagini. Se lo si desidera, è possibile chiamare dw20.exe per scaricare la coda. In caso contrario, i report verranno mantenuti per un tempo illimitato.

Vedere anche

Concetti

Monitoraggio delle query e del server StreamInsight