報告管線元件錯誤
管線元件會使用兩種方法來報告錯誤:
如果是 .NET 元件,則會擲回例外狀況。
針對 COM 型元件,藉由設定 ErrorInfo 物件並傳回失敗 HRESULT。
報告 .NET 管線元件錯誤
若要報告錯誤,.NET 管線元件需要擲回例外狀況,以報告此錯誤的描述。 若要報告擲回錯誤的元件名稱,請設定Exception物件的Source屬性。
傳訊引擎會使用Exception物件的Message和Source屬性來報告錯誤。 下列訊息會寫入事件記錄:
「執行 [receive|send] 管線失敗:管線名稱 > 來源: << 來源 > [接收位置|傳送埠:] < 位置|埠名稱 > 原因: < 訊息 > 。」
報告 COM 管線元件錯誤
為了報告錯誤,COM 管線元件會執行下列動作:
管線元件會呼叫 SetErrorInfo 方法來設定 IErrorInfo 物件。
管線元件會將失敗的 HRESULT 傳給傳訊引擎。
傳訊引擎會使用IErrorInfo物件的GetSource和GetDescription屬性來報告錯誤。 如果未設定來源,則會使用此元件的名稱。 如果未設定描述,或未設定整個 ErrorInfo 物件,則會報告傳回的 HRESULT,而不是描述。 下列訊息會寫入事件記錄:
「執行 [receive|send] 管線失敗:管線名稱 > 來源: << GetSource > [接收位置|傳送埠:] < 位置|埠名稱 > 原因: < GetDescription 或 HRESULT > 。」