次の方法で共有


オーケストレーション内の型指定されたエラー コントラクトを処理する方法

このトピックでは、オーケストレーション内から WCF サービスを使用する際に、型指定されたエラー コントラクトを処理する方法について説明します。 オーケストレーションで型指定されたエラー例外を処理するには、使用する WCF サービスに 、サービス操作に FaultContractAttribute を適用する必要があります。したがって、 エラーは FaultException<T> を使用してスローできます。T には、WCF サービスの有効なデータ コントラクトまたはシリアル化可能な型を指定できます。

手順

オーケストレーション内の型指定されたエラー コントラクトを処理するには

  1. Microsoft Visual Studio BizTalk プロジェクトのソリューション エクスプローラーで、プロジェクトを右クリックし、[追加] をクリックし、[生成された項目の追加] をクリックします。

  2. [ 生成された項目の追加 - <プロジェクト名> ] ダイアログ ボックスの [ テンプレート ] セクションで、[ WCF サービスの使用] を選択し、[ 追加] をクリックします。

  3. [ BizTalk WCF サービス使用ウィザードへようこそ ] ページで、[ 次へ] をクリックします。

  4. [ メタデータ ソース ] ページで、[ メタデータ Exchange (MEX) エンドポイント] を選択し、[ 次へ] をクリックします。

  5. [ メタデータ エンドポイント] ページで、Exchange または Http-Get を使用してダウンロードするためのメタデータを提供する実行中のサービスの URL WS-Metadata 指定します(例: http://localhost:8005. URL からメタデータ ドキュメントを取得するには、[ 取得] をクリックします。 実行中のサービスで基本認証スキームを使用するユーザー資格情報が必要な場合は、[ 編集 ] をクリックして BizTalk WCF サービス使用ウィザード ダイアログ ボックスを開きます。このダイアログ ボックスでは、実行中のサービスにアクセスするときに使用するユーザー名とパスワードを指定できます。 [次へ] をクリックします。

  6. [ IMPORT WCF Service Metadata Summary]\(WCF サービス メタデータのインポートの概要\ ) ページで、設定を確認します。 [ 戻る ] をクリックすると、変更を加えることができます。 次に、[ インポート ] をクリックして、WCF サービスの使用に使用する BizTalk 成果物と型を作成します。

  7. [ BizTalk WCF サービス使用ウィザードの完了 ] ページで、[完了] をクリック します

  8. 使用している WCF サービスが、次のエラー例外をスローするとします。

    throw new FaultException<MyOperationException>(divideException);  
    

    送信ポートに対するエラー操作では、 MyOperationException 型のメッセージが必要ですが、WCF 応答メッセージには障害本文全体が含まれています。 そのため、メッセージから MyOperationException 部分を抽出する必要があります。そのためには、[トランスポートのプロパティ] ダイアログ ボックスで [ 受信 BizTalk メッセージ本文 ] オプションを構成します。 たとえば、オブジェクトに適用された

    • [ パス] を選択します。本文のパスによって配置されたコンテンツ

    • 本文のパス式を次のように設定します。

      /*[local-name()='Fault']/*[local-name()='Detail']/* | /*[local-name()='DivideResponse']  
      
    • [ノード エンコード] ドロップダウン リストから [Xml] を選択します。

  9. オーケストレーションで、1 つのスコープと 2 つの例外ハンドラを追加する必要があります。 1 つの例外ハンドラーは、前の例で示した MyOperationException と同様に、Fault 操作用です。もう 1 つの例外ハンドラーは、汎用 SOAPExceptions をキャッチすることです。

参照

WCF サービスとして公開されたオーケストレーションからエラー例外をスローする方法
BizTalk WCF サービス使用ウィザードを使用した WCF サービスの使用方法