Notificación de errores de los componentes de canalización

Los componentes de canalización informan de errores de dos formas:

  • En el caso de los componentes basados en .NET, mediante el inicio de una excepción.

  • Para los componentes basados en COM, estableciendo el objeto ErrorInfo y devolviendo un HRESULT de error.

Notificar errores desde los componentes de canalización .NET

Para notificar un error, el componente de canalización basado en .NET necesita iniciar una excepción en la ubicación en la que informa del error. Para notificar el nombre del componente que produce un error, establezca la propiedad Source del objeto Exception .

El motor de mensajería usa las propiedades Message y Source del objeto Exception para notificar un error. Se escribe el siguiente mensaje en el registro de eventos:

"Error al ejecutar la canalización <[receive|send]: nombre> de canalización Origen: <Origen> [Ubicación de recepción|Ubicación del puerto de envío:] <|nombre> del puerto Motivo: <Mensaje>".

Notificar errores desde los componentes de canalización COM

Para notificar un error, los componentes de canalización basados en COM realizan las siguientes acciones:

  1. El componente de canalización establece el objeto IErrorInfo llamando al método SetErrorInfo .

  2. El componente de canalización devuelve un error de HRESULT al motor de mensajería.

    El motor de mensajería usa las propiedades GetSource y GetDescription del objeto IErrorInfo para notificar un error. Si no se ha establecido el origen, se usa el nombre del componente. Si no se establece la descripción o no se establece el objeto ErrorInfo completo, se notifica el VALOR HRESULT devuelto en lugar de la descripción. Se escribe el siguiente mensaje en el registro de eventos:

    "Error al ejecutar la canalización <[receive|send]: nombre> de canalización Origen: <GetSource> [Ubicación de recepción|Ubicación del puerto de envío:] <|nombre> del puerto Motivo: <GetDescription o HRESULT>".

Consulte también

Desarrollo de componentes de canalización personalizados