次の方法で共有


パイプライン コンポーネントからのエラーの報告

パイプライン コンポーネントは、2 種類の方法でエラーを報告します。

  • .NET ベースのコンポーネントの場合は、例外をスローします。

  • COM ベースのコンポーネントの場合は、 ErrorInfo オブジェクトを設定し、エラー HRESULT を返します。

.NET パイプライン コンポーネントからのエラーの報告

.NET ベースのパイプライン コンポーネントは、エラーを報告するために、例外をスローしてエラーの説明を通知する必要があります。 エラーをスローするコンポーネントの名前を報告するには、Exception オブジェクトの Source プロパティを設定します。

メッセージング エンジンは、Exception オブジェクトの Message プロパティと Source プロパティを使用してエラーを報告します。 次のメッセージがイベント ログに書き込まれます。

"[receive|send] パイプラインを実行中にエラーが発生しました: <パイプライン名> Source: <Source> [Receive Location|送信ポート:] <location|port name> Reason: <Message>"

COM パイプライン コンポーネントからのエラーの報告

COM ベースのパイプライン コンポーネントは、エラーを報告するために以下のアクションを実行します。

  1. パイプライン コンポーネントは、 SetErrorInfo メソッドを呼び出して IErrorInfo オブジェクトを設定します。

  2. パイプライン コンポーネントは、HRESULT エラーをメッセージング エンジンに返します。

    メッセージング エンジンは、IErrorInfo オブジェクトの GetSource プロパティと GetDescription プロパティを使用してエラーを報告します。 送信元が設定されていない場合は、コンポーネントの名前を使用します。 説明が設定されていない場合、または ErrorInfo オブジェクト全体が設定されていない場合、返される HRESULT は説明の代わりに報告されます。 次のメッセージがイベント ログに書き込まれます。

    "[receive|send] パイプラインを実行中にエラーが発生しました: <パイプライン名> Source: <GetSource> [Receive Location|送信ポート:] <location|port name> Reason: <GetDescription または HRESULT>。

参照

カスタム パイプライン コンポーネントの開発