Segnalazione di errori dai componenti della pipeline
Gli errori dei componenti della pipeline vengono segnalati in due modi:
Per i componenti basati su .NET viene generata un'eccezione.
Per i componenti basati su COM, impostando l'oggetto ErrorInfo e restituendo un errore HRESULT.
Segnalazione di errori da parte dei componenti .NET della pipeline
Per segnalare un errore i componenti della pipeline basati su .NET devono generare un'eccezione contenente una descrizione dell'errore. Per segnalare il nome del componente che genera un errore, impostare la proprietà Source dell'oggetto Exception .
Il motore di messaggistica usa le proprietà Message e Source dell'oggetto Exception per segnalare un errore. Nel registro eventi viene scritto il messaggio seguente:
"Si è verificato un errore durante l'esecuzione della pipeline [receive|send] pipeline: origine nome> pipeline: <<origine> [Percorso di ricezione|Send Port:] <location|port name> Reason: <Message>."
Segnalazione di errori dai componenti COM della pipeline
Per segnalare un errore, i componenti della pipeline basati su COM eseguono le seguenti azioni:
Il componente della pipeline imposta l'oggetto IErrorInfo chiamando il metodo SetErrorInfo .
Il componente della pipeline restituisce al motore di messaggistica un HRESULT di operazione non riuscita.
Il motore di messaggistica usa le proprietà GetSource e GetDescription dell'oggetto IErrorInfo per segnalare un errore. Se l'origine non è impostata viene utilizzato il nome del componente. Se la descrizione non è impostata o l'intero oggetto ErrorInfo non è impostato, il valore HRESULT restituito viene segnalato anziché la descrizione. Nel registro eventi viene scritto il messaggio seguente:
"Si è verificato un errore durante l'esecuzione della pipeline [receive|send]: nome> della pipeline: Origine della pipeline: <<GetSource> [Percorso di ricezione|Send Port:] <location|port name> Reason: <GetDescription o HRESULT>."