チュートリアル:WCF-NetTcp アダプターでのカスタム メッセージの処理
このチュートリアルでは、Windows Communication Foundation (WCF) クライアントが、埋め込みバイナリ JPEG 画像データを含む WCF メッセージを、WCF-NetTcp アダプターを使用して BizTalk 受信場所に送信します。 バイナリ エンコード JPEG イメージは、アダプターの構成の 受信メッセージ本文 の設定を通じて XPath ステートメント (Base64 Node エンコードを使用) を使用して抽出されます。 XPath 処理は、受信メッセージの処理に使用BizTalk Server既定のメソッドとは異なります。 既定のメソッドでは、アダプターは WCF メッセージの Body 要素の内容全体を取得し、BizTalk MessageBox データベースに送信します。 XPath メッセージ処理では、受信 WCF メッセージの特定の部分を抽出して、カスタム BizTalk メッセージを作成します。 このサンプルの XPath 処理では、受信 WCF メッセージ (XML 形式) で SendPicture という名前の XML 要素を検索します。 この要素が検出されると、Base64 エンコードされたバイナリ オブジェクトとしての要素の値が抽出され、そのバイナリ値が BizTalk メッセージに配置されます。 このメッセージはメッセージ ボックス データベースに発行された後、送信ポート フィルター サブスクリプションを使用して FILE 送信ポートに出力されます。 このサンプルでオーケストレーションは使用されず、すべての処理は XPath を使用して BizTalk メッセージング経由で行われます。
WCF アダプターは、Windows Communication Foundation (WCF) クライアントと、BizTalk Serverからの WCF リモート サービスとの通信に使用されます。 これにより、オーケストレーションとスキーマを WCF サービスとして発行でき、また、オーケストレーションが外部 WCF サービスを使用する機能も提供されます。 WCF-NetTcp アダプターは NetTcpBinding バインディングを 使用します。これは、最適化されたバイナリ メッセージ エンコードを使用した TCP トランスポートを意味します。 WCF-NetTcp アダプターは、送信アダプターと受信アダプターの 2 つで構成されます。 このアダプタからは、SOAP セキュリティ、信頼性、およびトランザクションの各機能にフル アクセスできます。
このチュートリアルを完了すると、次のタスクを実行できるようになります。
BizTalk Server管理コンソールを使用して、MSI ファイルをインポートして送信ポート、受信ポート、および受信場所を作成します。
BizTalk Server管理コンソールを使用して、WCF メッセージの SendPicture 要素からデータを抽出する XPath ステートメントを実行するように WCF 受信場所を構成します。
Note
hosttrusted 要素は、受信ハンドラーに関連付けられているホストが信頼されているかどうかを指定します。 bindings.xml ファイルでは、このサンプルでは BizTalk Server Enterprise Single Sign-On サービス (SSO) を気にしないため、既定の設定false
に設定されています。 SSO を使用すると、BizTalk Serverを介してユーザー資格情報を渡すことで、サードパーティ製アプリケーションをBizTalk Serverと統合できます。 設定 false
により、BizTalk メッセージが SSO 処理の一部として BizTalk サービスを通過できなくなります。
前提条件
このサンプルの手順を実行するには、環境に次の前提条件がインストールされていることを確認します。
アセンブリをビルドして展開プロセスを実行するコンピューターと、サンプルを実行するコンピューターの両方に、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 機能を必要とする任意のコンピューターで、 の WCF サンプル https://go.microsoft.com/fwlink/?LinkId=135510の 1 回限りのセットアップ手順を完了します。
サンプルを実行し、.msi ファイルをBizTalk Serverにインポートするコンピューターで、ホストが信頼されたホストでないことを確認するか、インポートが失敗します。
チュートリアル コードをダウンロードし、コンピューターに抽出する必要があります。 このチュートリアルは、WCF アダプターチュートリアル パッケージ全体の一部です。 WCFAdapterWalkthroughs.exeファイルは、BizTalk Server デベロッパー センター () からhttps://go.microsoft.com/fwlink/?LinkId=194140ダウンロードできます。
WCFCustomMessageProcessing アプリケーションとアイテムを構成する
BizTalk Server管理コンソールで[アプリケーション]を右クリックし、[インポート]、[MSI ファイル] の順に選択します。 C:\WCFCustomMessageProcessing\WCFCustomMessageProcessing.msi ファイルに移動し、[開く] をクリックします。 これにより、このアプリケーションに次のアイテムが作成されます。
FileSP 送信ポート: C:\WCFCustomMessageProcessing\Out のローカル ファイル システム上の場所。JPEG 画像データは、サンプル処理の最終出力として BizTalk Server によって送信されます。 BTS の送信ポート フィルターを表示できます。ReceivePortName = [フィルター] の [FileSP のプロパティ] ダイアログ ボックスで構成された NetTcpRP。 このフィルターは、NetTcp 受信ポートに関連付けられています。 NetTcpRP 受信ポートで受け入れられたメッセージは、受信場所がメッセージに対して XPath 処理を実行した後、 C:\WCFCustomMessageProcessing\Out の FileSP 送信ポート出力場所に送信されます。
NetTcpRP 受信ポート: NetTcpRL 受信場所を論理的に含むポート。
NetTcpRL 受信場所: 既定の PassThroughTransmit パイプラインと WCF-NetTcp アダプターを使用して XPath ステートメントを実行し、受信 WCF メッセージから JPEG イメージ データをプルします。
WCFCustomMessageProcessing アプリケーションを構成する別の手順
または、 C:\WCFCustomMessageProcessing\bindings.xml ファイルを使用せずにアプリケーションを構成する手動の手順を次に示します。 前のバインド ファイル インポート プロセスが正しく機能する場合はこれを実行する必要はありません。 しかし、目をとおしておくことで、MSI ファイルの役割について理解を深めることができます。
一方向の受信ポート (NetTcpRP) と受信場所 (NetTcpRL) を作成します。
WCFCustomMessageProcessing アプリケーションを展開し、[受信ポート] を右クリックし、[新規] を選択して、[一方向の受信ポート] を選択します。 [受信ポートのプロパティ] ダイアログ ボックスで、[名前] に「」と入力
NetTcpRP
し、[OK] をクリックします。NetTcpRP 受信ポートを右クリックし、[新規] を選択して、[受信場所] を選択します。 [受信場所のプロパティ] ダイアログ ボックスで、[名前] に「」と入力
NetTcRL
します。 [ トランスポート ] セクションで、[ 種類 ] ドロップダウン リスト ボックスをクリックし、ドロップダウン リストから [WCF-NetTcp ] を選択し、[ 構成] をクリックします。[全般] タブの [アドレス(URI)] フィールドに「net.tcp://localhost/NetTcpRL/Image」と入力します。
[ セキュリティ ] タブで、[ セキュリティ モード ] を [なし] に設定します。
[メッセージ] タブで、受信 BizTalk メッセージ本文の [パス] オプションを選択し、本文のパス式に「」と入力
/*[local-name()="SendPicture" and namespace-uri()='http://tempuri.org/']/*[local-name()="stream"]
します。 [ノード エンコード] として [Base64] を選択します。 Path オプションは value に設定されています。これは、BizTalk Server受信する WCF メッセージの本文が SendPicture xmlns="http://tempuri.org/">< の形式<であるためです。stream>actual base 64 encoded binary image data</stream></SendPicture>[ 受信場所のプロパティ ] ダイアログ ボックスで、[OK] をクリック します。
NetTcpRP 受信ポートをサブスクライブする一方向のファイル送信ポート (FileSP) を作成します。
[ 送信ポート] を右クリックし、[ 新規] を選択して、[ 一方向の受信ポート] を選択します。 [ 静的一方向ポート] を選択します。 [名前] に「
FileSP
」と入力します。[ トランスポート ] セクションで、[ 種類 ] ドロップダウン リスト ボックスをクリックし、ドロップダウン リストから [ ファイル ] を選択し、[ 構成] をクリックします。
[ 宛先フォルダー] に 「」と入力
C:\WCFCustomMessageProcessing\Out
し、[OK] をクリック します。[ フィルター] をクリックし、 を選択
BTS.ReceivePortName == NetTcpRP
し、 [OK] をクリック します。
送信ポートを構成してアプリケーションを実行する
WCFCustomMessageProcessing アプリケーションを右クリックし、[開始] を選択します。 これにより、NetTcpRL 受信場所が有効になり、FileSP 送信ポートが開始されます。
Visual Studio で、C:WCFCustomMessageProcessing\Client フォルダーからファイルを開
Client.sln
きます。 ソリューション エクスプローラーで、 [クライアント] プロジェクトを右クリックし、 [ビルド] を選択します。Visual Studio で [ デバッグ] を選択し、[ デバッグなしで開始 ] を選択して、Client.exe アプリケーションを実行します。 イメージがBizTalk Serverに送信されたことを示すコマンド プロンプトが表示されます。
成功した {GUID}.jpg ファイル出力が C:\WCFCustomMessageProcessing\Out の送信ポート ファイル フォルダーに出力されたことを確認します。これは、JPEG ファイルを抽出して FILE 送信ポートに書き出すアプリケーション処理が正常に完了したことを示しています。