オーケストレーション内の型指定されたエラー コントラクトを処理する方法
このトピックでは、オーケストレーション内から WCF サービスを使用する際に、型指定されたエラー コントラクトを処理する方法について説明します。 オーケストレーションで型指定されたエラー例外を処理するには、使用する WCF サービスに 、サービス操作に FaultContractAttribute を適用する必要があります。したがって、 エラーは FaultException<T> を使用してスローできます。T には、WCF サービスの有効なデータ コントラクトまたはシリアル化可能な型を指定できます。
手順
オーケストレーション内の型指定されたエラー コントラクトを処理するには
Microsoft Visual Studio BizTalk プロジェクトのソリューション エクスプローラーで、プロジェクトを右クリックし、[追加] をクリックし、[生成された項目の追加] をクリックします。
[ 生成された項目の追加 - <プロジェクト名> ] ダイアログ ボックスの [ テンプレート ] セクションで、[ WCF サービスの使用] を選択し、[ 追加] をクリックします。
[ BizTalk WCF サービス使用ウィザードへようこそ ] ページで、[ 次へ] をクリックします。
[ メタデータ ソース ] ページで、[ メタデータ Exchange (MEX) エンドポイント] を選択し、[ 次へ] をクリックします。
[ メタデータ エンドポイント] ページで、Exchange または Http-Get を使用してダウンロードするためのメタデータを提供する実行中のサービスの URL WS-Metadata 指定します(例: http://localhost:8005. URL からメタデータ ドキュメントを取得するには、[ 取得] をクリックします。 実行中のサービスで基本認証スキームを使用するユーザー資格情報が必要な場合は、[ 編集 ] をクリックして BizTalk WCF サービス使用ウィザード ダイアログ ボックスを開きます。このダイアログ ボックスでは、実行中のサービスにアクセスするときに使用するユーザー名とパスワードを指定できます。 [次へ] をクリックします。
[ IMPORT WCF Service Metadata Summary]\(WCF サービス メタデータのインポートの概要\ ) ページで、設定を確認します。 [ 戻る ] をクリックすると、変更を加えることができます。 次に、[ インポート ] をクリックして、WCF サービスの使用に使用する BizTalk 成果物と型を作成します。
[ BizTalk WCF サービス使用ウィザードの完了 ] ページで、[完了] をクリック します。
使用している WCF サービスが、次のエラー例外をスローするとします。
throw new FaultException<MyOperationException>(divideException);
送信ポートに対するエラー操作では、 MyOperationException 型のメッセージが必要ですが、WCF 応答メッセージには障害本文全体が含まれています。 そのため、メッセージから MyOperationException 部分を抽出する必要があります。そのためには、[トランスポートのプロパティ] ダイアログ ボックスで [ 受信 BizTalk メッセージ本文 ] オプションを構成します。 たとえば、オブジェクトに適用された
[ パス] を選択します。本文のパスによって配置されたコンテンツ。
本文のパス式を次のように設定します。
/*[local-name()='Fault']/*[local-name()='Detail']/* | /*[local-name()='DivideResponse']
[ノード エンコード] ドロップダウン リストから [Xml] を選択します。
オーケストレーションで、1 つのスコープと 2 つの例外ハンドラを追加する必要があります。 1 つの例外ハンドラーは、前の例で示した MyOperationException と同様に、Fault 操作用です。もう 1 つの例外ハンドラーは、汎用 SOAPExceptions をキャッチすることです。
参照
WCF サービスとして公開されたオーケストレーションからエラー例外をスローする方法
BizTalk WCF サービス使用ウィザードを使用した WCF サービスの使用方法