チュートリアル:WCF-BasicHttp アダプターでの WCF サービスの使用
Note
アダプターの詳細については、「BizTalk Serverのアダプター」を参照してください。
はじめに
このチュートリアルでは、BizTalk メッセージングと WCF-BasicHttp 送信アダプターを使用して、インターネット インフォメーション サービス (IIS) 内でホストされている Windows Communication Foundation (WCF) サービスを使用します。 このアダプターは、BasicHttpBinding バインドを使用して、Microsoft BizTalk Serverと WCF 機能の間のブリッジとして機能する、以前のバージョンの Web サービスと互換性のあるトランスポート/プロトコル スタック実装を提供します。 オーケストレーションは、WCF アダプターを使用して WCF サービスを呼び出し、その論理ビジネス処理内でその機能を利用する送信ポートにバインドできます。
WCF-BasicHttp アダプターは、受信アダプターと送信アダプターの 2 つで構成されます。 このサンプルでは、このアダプターの送信側のみを使用して、HTTP プロトコルを介して WCF サービスに WCF サービス要求を行います。 Solicit-Response 送信ポートの場合、送信アダプターは WCF サービスに送信し、結果の応答を受け取ります。 逆に、WCF 受信アダプターを使用すると、WCF クライアント アプリケーションによってBizTalk Serverオーケストレーションを外部で発行および呼び出すことができます。 詳細については、 WCF サービスの発行に関する ページを参照してください。
このチュートリアルを完了すると、次のタスクを実行できるようになります。
Microsoft Visual Studio 内から Deploy コマンドを使用して、BizTalk Server ソリューションと WCF サービスを含むアセンブリを BizTalk Server のローカル インスタンスに展開します。 これにより、アセンブリが含まれた BizTalk アプリケーションが作成されます。
Visual Studio 内から、BizTalk WCF サービス使用ウィザードを使用して、WCF サービスを使用するために必要なBizTalk Serverスキーマと型を生成します。 論理ポートへのバインドに使用できる空のオーケストレーションも生成されます。 このオーケストレーションは、スキーマと型と共にコンパイルおよびデプロイされます。 ただし、オーケストレーション ワークフローの処理はここでは空であり、このサンプルでは使用されません。これは単なる純粋なBizTalk Server メッセージング シナリオであるためです。
BizTalk Server管理コンソールから、WCF-BasicHttp 送信ポートを使用してコンテンツ ベースのルーティングを構成します。 ターゲット WCF サービスが受け取ることを期待する SOAPAction ヘッダーを構成します。
BizTalk Server管理コンソールから、WCF サービスが出力フォルダーに送信できる SOAP エラー メッセージをルーティングするようにフィルター式を構成します。
インターネット インフォメーション サービス (IIS) マネージャー内から、WCF サービスをホストする Web アプリケーションを構成して、そのメタデータを公開します。 これを有効にすると、 BizTalk WCF サービス使用ウィザード は、このメタデータを取得して、WCF サービスにアクセスするための型とスキーマを生成できます。
前提条件
このサンプルの手順を実行するには、使用する環境が次の前提条件を満たしている必要があります。
アセンブリをビルドして展開プロセスを実行するコンピューターと、サンプルを実行するコンピューターの両方に、Microsoft Windows Server 2008 SP2、Microsoft .NET Framework 4.5、および Microsoft BizTalk Serverが必要です。
アセンブリのビルドと展開プロセスの実行に使用するコンピューターには、Microsoft Visual Studio が必要です。
サンプルを実行するコンピューターには、WCF アダプターと WCF 管理ツールが必要です。 これらは、Microsoft BizTalk Serverのセットアップ中にインストールするオプションです。
管理タスクの実行に使用するコンピューターで、BizTalk Server管理コンソール内でBizTalk Serverアプリケーション設定を構成するには、BizTalk Server Administrators グループのメンバーであるユーザー アカウントとして を実行する必要があります。 また、アプリケーションの展開、ホスト インスタンスの管理、およびその他の必要なタスクを実行するには、このユーザー アカウントはローカル管理者グループのメンバーである必要もあります。
WCF 機能を必要とする任意のコンピューターで、Windows Communication Foundation サンプルのワンタイム セットアップ手順で WCF サンプルの ワンタイム セットアップ手順を完了します。
サンプルを実行し、バインドまたは .msi ファイルをBizTalk Serverにインポートするコンピューターで、ホストが信頼されたホストでないことを確認するか、インポートが失敗します。
チュートリアル コードをダウンロードし、コンピューターに抽出する必要があります。 このチュートリアルは、WCF アダプターチュートリアル パッケージ全体の一部です。 WCFAdapterWalkthroughs.exeファイルは、BizTalk Server デベロッパー センター () からhttps://go.microsoft.com/fwlink/?LinkId=194140ダウンロードできます。
サンプル WCF サービスをデプロイする
自己解凍 WCFBasicHttpSendAdapter.exe ファイルを実行し、 C:\WCFBasicHttpSendAdapter フォルダーにファイルを抽出します。
Visual Studio で C:\WCFBasicHttpSendAdapter\WCFBasicHttpSendAdapter.sln を開きます。
ソリューション エクスプローラーで、BasicHttpWCFServiceConsuming プロジェクトを展開します。 このプロジェクトは、送信ポートによって呼び出される WCF サービスです。 インターネット インフォメーション サービス (IIS) を使用してマネージド ホスト環境でホストされます。 IIS のホスティングでは、メッセージベースのアクティブ化を使用して、サービスのアクティブ化と有効期間を管理します。 App_Code展開し、OrderProcess.cs を開いて確認します。 この WCF サービスは、 OrderRequest メソッドを介して注文要求メッセージを受信します。 OrderProcess.cs ファイルには、WCF サービスのインターフェイスの遅延と実装が含まれています。 OrderResponse メソッドを使用して注文応答メッセージを返すだけです。
OrderProcess.svc ファイルを確認します。 このファイルは 1 行だけで、クライアント アプリケーション用のサービスをアクティブ化するように IIS に指示します。 サービス を ホストするために使用される@ServiceHost属性は、WCF プログラミング モデル内の拡張性のポイントです。 ファクトリ パターンでは 、ServiceHostFactory を使用して、受信要求を処理する WCF サービスのインスタンスを含む ServiceHost のインスタンスを作成します。 このインスタンスのインスタンス化は 、ServiceBehaviorAttribute.ConcurrencyMode プロパティに基づいており、サービスが 1 つのスレッド、複数のスレッド、または再入可能な呼び出しをサポートするかどうかを決定します。 インスタンス化は ServiceBehavior.InstanceMode プロパティによっても決定されます。これにより、1 つのインスタンスのみがすべての呼び出し元 (シングルトン) にサービスを提供するか、呼び出しごとに 1 つのインスタンスが作成されるか (ステートレス)、セッションごとに 1 つのインスタンスが作成されるか (ステートフル) が決定されます。
<%@ServiceHost language=c# Debug="true" Service="Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming.OrderProcessServiceType" %>
Visual Studio のソリューション エクスプローラーで、Web.config を開いて確認します。 IIS でホストされている場合、WCF サービスは、コンソール アプリケーションでホストされている場合と同様に、app.config ファイルではなく Web.config ファイルを使用して構成されます。
BizTalk WCF サービス使用ウィザードがサービスのメタデータを<使用できるように、serviceMetaData> 要素の httpGetEnabled 属性が に
true
設定されていることを確認します。セキュリティ>要素の mode 属性が < None に設定されていることを確認します。 このチュートリアルでは None セキュリティ モードを使用するため、匿名アクセスを許可するようにこのサービスをホストする Web アプリケーションを構成する必要があります。
Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming アセンブリは GAC にインストールする必要があるため、展開プロセスを完了するには厳密な名前キー ファイルが必要です。 BasicHttpWcfServiceConsuming プロジェクトを右クリックし、[プロパティ] をクリックします。 [ プロパティ ] ページで、[ 署名] をクリックし、[ アセンブリに署名する] を選択します。 [Choose a strong name key file]\(厳密な名前のキー ファイルの選択\) ドロップダウン リストで下矢印をクリックし、[新規>] をクリックして<、キー ファイル名のテキストボックスに「」と入力
keyfile.snk
します。 [ パスワードでキー ファイルを保護する] をオフにし、[OK] をクリック します。ソリューション エクスプローラーで、[BasicHttpWcfServiceConsuming] を右クリックし、[リビルド] をクリックします。
Windows エクスプローラーを使用して、C:\WCFBasicHttpSendAdapter\BasicHttpWCFServiceConsuming の内容を C:\InetPub\wwwroot フォルダーにコピーします。
WCF サービスをホストするように Web アプリケーションを次のように構成します。
[ スタート] ボタンをクリックし、[ 管理者ツール] をポイントして、[ インターネット インフォメーション サービス (IIS) マネージャー] をクリックします。
このサービスが実行されるアプリケーション プールを作成します。 [ アプリケーション プール] を右クリックし、[ アプリケーション プールの追加...] をクリックし、アプリケーション プールの名前を入力して、[OK] をクリック します。
[ アプリケーション プール] を展開し、先ほど作成したアプリケーション プールを右クリックし、[ 詳細設定] を選択します。 [プロセス モデル] セクションの [ID] フィールドに、BizTalk Server データベースにアクセスできるアカウントを入力します。
[ サイト] を展開し、[ 既定の Web サイト] を展開し、[ BasicHttpWCFServiceConsuming] を右クリックし、[ アプリケーションに変換 ] をクリックして、この WCF サービス用の Web アプリケーションを作成します。
[ アプリケーションに変換 ] ダイアログ ボックスで、[ 選択 ] をクリックして前に作成したアプリケーション プールを選択し、[OK] をクリック します。
[機能ビュー] で、[ 認証 ] アイコンをクリックし、[ 匿名認証 ] オプションが 有効になっていることを確認します。 これにより、 None セキュリティ モードの WCF サービスがサポートされます。
発行された WCF サービスを次のようにテストします。
IIS マネージャーで、[ Web サイト] を展開し、[ BasicHttpWCFServiceConsuming] を展開します。
IIS マネージャーの右側のウィンドウで、[ OrderProcess.svc] を右クリックし、[ 参照] をクリックします。 これにより、インターネット エクスプローラーが開き、実行中の WCF サービスが正常に作成されたことを示す OrderProcessServiceType サービス ページが表示されます。 このページには、完全な WSDL アドレスも含まれます。サービス メタデータ ツール (svcutil.exe) で、このアドレスをコピーして使用することで、サービスのクライアント アプリケーションを開発するために使用できるプロキシ コードおよび構成ファイルを作成できます。
完全な WSDL アドレスをシステム クリップボードにコピーします。 "svcutil.exe" 部分はコピーしないでください。
http://localhost/BasicHttpWcfServiceConsuming/OrderProcess.svc?wsdl
WCF-BasicHttp アダプターのスキーマと型をサンプル BizTalk アプリケーションに追加する
アダプターは WCF サービスを呼び出すので、メタデータを使用してそのサービスを呼び出す方法に関するスキーマと型からの情報が必要です。 BizTalkApp には、WCF サービスを使用するための成果物が用意されています。 Visual Studio のソリューション エクスプローラーで、[BizTalkApp] を右クリックし、[追加] をクリックし、[生成された項目の追加] をクリックします。
[ 生成された項目の追加 ] ダイアログ ボックスの [ テンプレート ] セクションで、[ WCF サービスの使用] を選択し、[ 追加] をクリックします。
[ BizTalk WCF サービス使用ウィザードへようこそ ] ページで、[ 次へ] をクリックします。 このウィザードは、メタデータを読み取り、スキーマと型を作成します。
[ メタデータ ソース ] ページで、[ Metadata Exchange (MEX)] エンドポイント オプションを選択して、前の手順でクリップボードにコピーした URL からメタデータを使用し、[ 次へ] をクリックします。
[ メタデータ エンドポイント ] ページで、前の手順でコピーした完全な WSDL アドレスを [ メタデータ アドレス ] ドロップダウン リストに貼り付け、[ 取得 ] をクリックしてサンプル WCF サービスのメタデータ ドキュメントを取得します。 メタデータを取得すると、[ 次へ ] ボタンが有効になります。 [次へ] をクリックして、続行します。
[ WCF サービス メタデータのインポートの概要 ] ページで、設定を確認します。 このダイアログ ボックスには、インポート対象のメタデータの名前空間、XSD、および WSDL の概要が表示されます。 また、インポート プロセス中にオーケストレーション (.odx)、バインド (.xml)、スキーマ (.xsd) ファイルが書き込まれる場所も示します。 [ インポート] をクリックして、サンプル WCF サービスの使用に使用する BizTalk 成果物と型を作成します。
[ BizTalk WCF サービス使用ウィザードの完了 ] ページで、[完了] をクリック します。
Visual Studio のソリューション エクスプローラーでは、BizTalk WCF サービス使用ウィザードによって次のファイルが生成されます。
オーケストレーション ファイル OrderProcessServiceType.odx。 このオーケストレーションにはワークフロー ステージはありません。 ただし、追加して論理ポートにバインドして WCF サービスを使用することもできます。 オーケストレーションには、このサンプルで使用されるポートの種類やマルチパート メッセージの種類などの BizTalk の重要な型が含まれます。 この情報を表示するには、 OrderProcessServiceType.odx オーケストレーションをダブルクリックします。 [ 表示] をクリックし、[ その他のウィンドウ] をクリックして、[ オーケストレーション ビュー] をクリックします。 [ 種類] を展開し、[ ポートの種類] を展開し、[ IOrderProcess] を展開します。 Submit メソッドが表示されます。 そのメソッドを展開すると、 OrderRequest と OrderResponse のポートの種類が表示されます。 各ポートの種類をクリックし、プロパティ ブラウザーで Description フィールドを表示し、さまざまな WSDL 入力メッセージと出力メッセージを表示します。 [ マルチパート メッセージの種類 ] をクリックし、 OrderRequest と OrderResponse のマルチパート メッセージの種類を表示します。 [ 説明 ] フィールドをクリックし、各メッセージの種類の WDSL メッセージ名を表示します。
2 つのスキーマ ファイルが生成されます。 最初のスキーマ ファイル (OrderProcessServiceType_biztalk_WCF_basichttpsendadapter_basichttpWCFserviceconsuming.xsd) は、サンプル WCF サービスで使用されるメッセージの種類を定義します。 OrderRequest 呼び出しと OrderResponse 呼び出しの両方で OrderID フィールドが使用されます。
2 番目のスキーマ ファイル (OrderProcessServiceType_schemas_microsoft_com_2003_10_Serialization.xsd) は、名前空間
http://schemas.microsoft.com/2003/10/Serialization/
の型、要素、および属性に対して DataContractSerializer によってエクスポートされます。2 つのバインド ファイルが生成されます。これは後で BizTalk アプリケーションを作成するために使用されます。 OrderProcessServiceType.BindingInfo.xml と OrderProcessServiceType_Custom.BindingInfo.xml。 通常は、非カスタム バインド ファイルを使用します。 ただし、カスタム バインド要素を使用する一部の特別な状況では、カスタム バインド ファイルを使用します。 カスタム バインド要素は、アプリケーション用の送信ポートを作成します。 OrderProcessServiceType.BindingInfo.xml ファイルをダブルクリックし、SendPort 定義行を検索し、このバインド ファイルをBizTalk Serverにインポートするときに作成される送信ポートを確認します。
<SendPort Name="WCFSendPort_OrderProcessServiceType_ServiceEndpoint" … >
これらのファイルは、WCF アダプターを使用して送信ポートに使用され、メタデータで説明されているサンプル WCF サービスを使用します。
サンプルの BizTalk ソリューション BizTalkApp を展開する
BizTalk Server アプリケーションを次のようにデプロイします。
Visual Studio のソリューション エクスプローラーで、[BizTalkApp] を右クリックし、[プロパティ] をクリックします。
[プロジェクト Designer] ウィンドウで、[配置] タブをクリックし、BizTalk Server管理データベースに別のデータベース サーバーを使用する場合は、Server プロパティを変更します。 アプリケーション名が WCFBasicHttpSendAdapter であることを確認します。
Visual Studio のソリューション エクスプローラーで、[BizTalkApp] を右クリックし、[リビルド] をクリックします。
Visual Studio のソリューション エクスプローラーで、[BizTalkApp] を右クリックし、[配置] をクリックします。 これにより、Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BizTalkApp アセンブリが GAC に展開され、成果物が WCFBasicHttpSendAdapter という名前のBizTalk Server アプリケーションに展開されます。
次の手順に従い、BizTalk アプリケーションの WCF-BasicHttp 送信ポートを構成します。
[スタート] ボタンをクリックし、[すべてのプログラム] をポイントし、[Microsoft BizTalk Server 20xx] をポイントして、[BizTalk Server管理] をクリックします。
BizTalk Server管理コンソールで、[BizTalk グループ] を展開し、[アプリケーション] を展開し、[WCFBasicHttpSendAdapter] を右クリックし、[インポート] をポイントして、[バインド] をクリックします。
[ バインドのインポート ] ダイアログ ボックスで、 C:\WCFBasicHttpSendAdapter\BizTalkApp フォルダーに移動し、[ OrderProcessServiceType.BindingInfo.xml] を選択し、[ 開く] をクリックします。 これは、 BizTalk WCF サービス使用ウィザード によって以前に作成されたバインディング ファイルの 1 つです。 これにより、WCFSendPort_OrderProcessServiceType_ServiceEndpoint送信ポート が 作成されます。
BizTalk Server管理コンソールで、[WCFBasicHttpSendAdapter] を展開し、[送信ポート] をクリックします。
BizTalk Server管理コンソールの右側のウィンドウで、バインド ファイル OrderProcessServiceType.BindingInfo.xml をインポートして作成したWCFSendPort_OrderProcessServiceType_ServiceEndpointをダブルクリックします。 [ 送信ポートのプロパティ ] ダイアログ ボックスが表示されます。
[ 送信ポートのプロパティ ] ダイアログ ボックスで、[ 構成] をクリックします。
[ 全般 ] タブで、 の [Address(URI)] フィールドを確認します
http://localhost/BasicHttpWcfServiceConsuming/OrderProcess.svc
。 これは、WCF-BasicHttp アダプターが呼び出す IIS でホストされている WCF サービスのアドレスです。[SOAP アクション ヘッダー/アクション] テキスト ボックスの内容を確認します。
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Operation Name="Submit" Action="http://Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming/IOrderProcess/Submit" /> </BtsActionMapping>
このフィールドは、送信 SOAP HTTP 要求メッセージの目的を示します。 ここでは、Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming 名前空間の IOrderProcess インターフェイスで送信操作を呼び出します。
Note
BizTalk WCF サービス使用ウィザードで生成されるバインド ファイルでは、StaticAction プロパティのアクション マッピング形式が使用されます。 WCF 送信アダプターにコンテンツ ベースのルーティングを使用して WCF サービスにメッセージを送信する場合は、BTS を設定する必要があります 。 コンテンツ ベースのルーティングに使用するフィールドとしてのアクション マッピング形式のパイプライン コンポーネントの Operation プロパティ。 または、コンテンツ ベースのルーティングに対しシングル アクション形式も使用できます。 このチュートリアルでは、単一アクション形式を使用します。 単一のアクション形式とアクション マッピング形式の詳細については、UI ガイダンスと開発者 API 名前空間リファレンスの「WCF-BasicHttp トランスポート プロパティ] ダイアログ ボックスの [送信]、[全般] タブ」を参照してください。
[OK] を 2 回クリックして、BizTalk Server管理コンソールに戻ります。
一方向の静的受信ポートおよび FILE 受信場所を作成します。 受信ポートとは、1 つ以上の受信場所に対する論理的なコンテナーです。 ここで、ファイル アダプターによって取得され、WCF サービスに送信されるサンプル WCF メッセージを削除します。
BizTalk Server管理コンソールで、[WCFBasicHttpSendAdapter] を展開し、[受信ポート] を右クリックし、[新規] をポイントして、[一方向の受信ポート] をクリックします。
[ 受信ポートのプロパティ ] ダイアログ ボックスの [名前 ] テキスト ボックスに「」と入力
WCFBasicSendAdapter.ReceivePurchaseOrder
し、[OK] をクリック します。BizTalk Server管理コンソールで、[WCFBasicHttpSendAdapter.ReceivePurchaseOrder] を右クリックし、[新規作成] をポイントして、[受信場所] をクリックします。
[ 受信場所のプロパティ ] ダイアログ ボックスの [ 名前 ] テキスト ボックスに「」と入力します
WCFBasicSendAdapter.ReceivePurchaseOrder.FILE
。[受信場所のプロパティ] ダイアログ ボックスの [種類] の横にある [トランスポート] セクションで、ドロップダウン リストから [ファイル] を選択し、[構成] をクリックします。
[ ファイル トランスポートのプロパティ ] ダイアログ ボックスの [ 全般 ] タブの [ 受信フォルダー ] テキスト ボックスに「」と入力
C:\WCFBasicHttpSendAdapter\OrderRequestIn
し、[OK] をクリック します。[ 受信場所のプロパティ ] ダイアログ ボックスで、[OK] をクリック します。
前のステップで作成した FILE 受信場所から WCF-BasicHttp 送信ポートにメッセージをルーティングするフィルターを作成します。 ポートに関連付けられたフィルターは SQL の "where" 句と同じように機能し、true と評価されるとメッセージがそのポートに送られます。
BizTalk Server管理コンソールで、[WCFBasicHttpSendAdapter] を展開し、[送信ポート] をクリックし、[WCFSendPort_OrderProcessServiceType_ServiceEndpoint] をダブルクリックします。
[送信ポートのプロパティ] ダイアログ ボックスの [フィルター] タブで、[BTS] を選択します。[プロパティ] フィールドに ReceivePortName を入力し、[値] フィールドに「」と入力
WCFBasicSendAdapter.ReceivePurchaseOrder
し、[OK] をクリックします。 このフィルター式は、受信メッセージを WCFBasicSendAdapter.ReceivePurchaseOrder 受信ポートからこの WCF-BasicHttp 送信ポートにルーティングします。
サンプル アプリケーションの 2 つの FILE 送信ポートを作成します。 最初の送信ポートは、WCF サービスから FILE ポートに出力応答メッセージを送信します。 2 番目の送信ポートは、クライアント宛ての WCF サービスから送信されたエラー メッセージを処理するために使用されます。
BizTalk Server管理コンソールで、[WCFBasicHttpSendAdapter] を展開し、[送信ポート] を右クリックし、[新規] をポイントして、[静的一方向送信ポート] をクリックします。
[ 送信ポートのプロパティ ] ダイアログ ボックスの [名前 ] テキスト ボックスに「」と入力します
WCFBasicSendAdapter.SendPurchaseOrder.FILE
。[ 送信ポートのプロパティ ] ダイアログ ボックスの [種類] の横にある [ トランスポート ] セクションで、ドロップダウン リストから [ ファイル ] を選択し、[ 構成] をクリックします。
[ ファイル トランスポートのプロパティ ] ダイアログ ボックスの [ 全般 ] タブの [ 宛先フォルダー ] テキスト ボックスに「 C:\WCFBasicHttpSendAdapter\OrderResponseOut」と入力し、[OK] をクリック します。
[送信ポートのプロパティ] ダイアログ ボックスの [フィルター] タブで、[BTS] を選択します。[プロパティ] フィールドに「MessageType」と入力
http://Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWCFServiceConsuming#OrderResponse
し、[値] フィールドに入力して、サンプル WCF サービスからの応答メッセージの種類を指定し、[OK] をクリックします。 このフィルター式は、サンプル WCF サービスからの応答メッセージをこの FILE 送信ポートにルーティングします。 送信ポートは、フィルターのプロパティで種類を指定することにより、種類が OrderResponse のメッセージをサブスクライブします。 これは、WCF サービスからの応答メッセージのメッセージの種類です。[ 送信ポートのプロパティ ] ダイアログ ボックスで、[OK] をクリック します。
BizTalk Server管理コンソールで、[WCFBasicHttpSendAdapter] を展開し、[送信ポート] を右クリックし、[新規] をポイントして、[静的一方向送信ポート] をクリックします。
[ 送信ポートのプロパティ ] ダイアログ ボックスの [名前 ] テキスト ボックスに「」と入力します
WCFAdapterErrorSend.FILE
。[送信ポートのプロパティ] ダイアログ ボックスの [種類] の横にある [トランスポート] セクションで、ドロップダウン リストから [ファイル] を選択し、[構成] をクリックします。
[ ファイル トランスポートのプロパティ ] ダイアログ ボックスの [ 全般 ] タブの [ 宛先フォルダー ] テキスト ボックスに「**C:\WCFBasicHttpSendAdapter\WCFAdapterErrorOut**」と入力し、[OK] をクリック します。
[送信ポートのプロパティ] ダイアログ ボックスの [フィルター] タブで、[WCF] を選択します。[プロパティ] フィールドに IsFault を入力し、[値] フィールドに「」と入力
True
し、[OK] をクリックします。 アプリケーション内では、WCF を確認することで、例外またはエラーを検出できます 。 呼び出し元に返されるメッセージの IsFault プロパティ。 送信されるメッセージが SOAP エラー メッセージの場合、このプロパティは True に設定されます。 このフィルター式は、サンプル WCF サービスからこの FILE 送信ポートにエラー メッセージをルーティングします。
次の手順で、サンプル アプリケーションのホスト名とバインドを指定します。
BizTalk Server管理コンソールで、[WCFBasicHttpSendAdapter] を展開し、[オーケストレーション] を展開し、Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BizTalkApp.OrderProcessServiceTypeClient オーケストレーションを右クリックし、[プロパティ]、[バインド] の順にクリックし、[ホスト] を BizTalkServerApplication に設定し、[OK] をクリックして構成を保存します。
WCF-BasicHttp 送信アダプターを使用してサンプル ソリューションをテストする
BizTalk Server管理コンソールで、[WCFBasicHttpSendAdapter] を右クリックし、[スタート] をクリックします。
[ スタート ] ダイアログ ボックスで、[ 開始] をクリックします。
BizTalk Server管理コンソールで、[プラットフォームの設定] を展開し、[ホスト インスタンス] を展開し、[BizTalkServerApplication] またはその他の適切なホスト インスタンスを右クリックして、[再起動] をクリックします。
コマンド プロンプトを開き、「 iisreset 」と入力して IIS とその依存サービスをリサイクルし、Enter キーを押します。
コマンド プロンプトで、 C:\WCFBasicHttpSendAdapter\TestData\WCFBasicSendAdapter.OrderRequest.Sample.xmlを C:\WCFBasicHttpSendAdapter\OrderRequestIn フォルダーにコピーします。 このメッセージは、静的 Solicit-Response 送信ポート WcfSendPort_OrderProcessServiceType_ServiceEndpoint 双方向にルーティングされます。 この双方向送信ポートの送信側は、IIS でホストされている WCF サービスで Submit メソッドを呼び出します。 結果は、WcfSendPort_OrderProcessServiceType_ServiceEndpoint送信ポートの応答ポート に 返されます。 WCFBasicSendAdapter.SendPurchaseOrder.FILE 送信ポートには、メッセージ
http://Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWCFServiceConsuming#OrderResponse
の種類が の場合にトリガーされるサブスクリプションがあります。 正常に処理されたメッセージを取得し、 C:\WCFBasicHttpSendAdapter\OrderResponseOut フォルダーに書き込みます。C:\WCFBasicHttpSendAdapter\OrderResponseOut フォルダーで、WCF サービスからの応答メッセージを確認します。
コマンド プロンプト で、 C:\WCFBasicHttpSendAdapter\OrderRequestIn フォルダーにC:\WCFBasicHttpSendAdapter\TestData\WCFBasicSendAdapter.OrderRequest.Invalid.xmlします。 このメッセージには無効な名前空間が含まれているため、WCF サービスはエラー メッセージを返します。
C:\WCFBasicHttpSendAdapter\WCFAdapterErrorOut フォルダーで、WCF サービスからのエラー メッセージを含む XML ファイルを確認します。 エラー メッセージの原因が<無効なメッセージ本文であることを示す faultstring> フィールドを確認します。
参照
チュートリアル: WCF-BasicHttp アダプターを使用して WCF サービスを発行する BizTalk WCF サービス使用ウィザードを使用して WCF サービスを使用する方法 WCFアダプターのメッセージ本文を指定する