Condividi tramite


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:

  1. Il componente della pipeline imposta l'oggetto IErrorInfo chiamando il metodo SetErrorInfo .

  2. 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>."

Vedere anche

Sviluppo di componenti di pipeline personalizzati