BizTalk WCF サービス使用ウィザードを使用した WCF サービスの使用方法
BizTalk アダプタ フレームワークでは、アダプタ スキーマと BizTalk の型を BizTalk プロジェクトに追加する方法が提供されています。 BizTalk WCF サービス使用ウィザードを使用すると、WCF 送信アダプタを BizTalk プロジェクトに追加できます。 WCF 送信アダプタを使用するために、送信ポートに対して、既存のメタデータ交換 (MEX) エンドポイントを選択する必要があります。 次に、スキーマと型を生成するために使用する情報を入力する必要があります。 ウィザードが完了すると、WCF サービスを使用するために必要なスキーマと型が BizTalk プロジェクトに追加されます。
WCF 送信アダプタのスキーマと型をプロジェクトに追加するには
Microsoft Visual Studio BizTalk プロジェクトのソリューション エクスプローラーで、プロジェクトを右クリックし、[追加] をクリックし、[生成された項目の追加] をクリックします。
[ 生成された項目の追加 - <プロジェクト名> ] ダイアログ ボックスの [ テンプレート ] セクションで、[ WCF サービスの使用] を選択し、[ 追加] をクリックします。
[ BizTalk WCF サービス使用ウィザードへようこそ ] ページで、[ 次へ] をクリックします。
[ メタデータ ソース ] ページで、インポートするメタデータのソースを選択し、[ 次へ] をクリックします。
実行中のサービスのメタデータ交換エンドポイントからメタデータ ドキュメントをダウンロードするには、 メタデータ交換 (MEX) エンドポイント オプションを選択します。 これにより、WCF サービスのクライアントとして機能する送信ポートを作成できます。 このオプションを使用するには、HTTP/GET または HTTPS/GET の要求を使用して取得できるように、サービス エンドポイントによってサービス メタデータが公開されていることが必要です。 また、サービス エンドポイントが、匿名ユーザー資格情報か、基本認証方式によるユーザー名とパスワードの形でのユーザー資格情報を使用したメタデータへのアクセスを許可していることも必要です。
Note
基本認証方式では、資格情報はプレーンテキストで送信され、容易に傍受されるおそれがあります。 また、この方式では、サービスから返される情報に対する保護も提供されません。 データを暗号化するには、Secure Sockets Layer (SSL) を使用する必要があります。
インポートするその他のメタデータ ドキュメントの場合は、[ メタデータ ファイル (WSDL および XSD)] オプションを選択して、ファイル システムからメタデータをインポートします。
Note
メタデータを公開する必要のないサービスもあります。 メタデータの公開を無効のままにしておけば、攻撃者にとっては侵入経路が少ないことになり、したがって情報漏洩の危険を減らすことができます。
[メタデータ ソース] ページで [メタデータ交換 (MEX) エンドポイント] オプションを選択した場合は、[メタデータ エンドポイント] ページが表示されます。 [ メタデータ エンドポイント] ページで、Exchange または Http-Get を使用してダウンロードするためのメタデータを提供する実行中のサービスの URL WS-Metadata 指定します。 URL からメタデータ ドキュメントを取得するには、[ 取得] をクリックします。 実行中のサービスで基本認証スキームを使用するユーザー資格情報が必要な場合は、[ 編集 ] をクリックして BizTalk WCF サービス使用ウィザード ダイアログ ボックスを開きます。このダイアログ ボックスでは、サービスの実行時に使用するユーザー名とパスワードを指定できます。
Note
HTTP または HTTPS を介して発行された WCF サービスのメタデータをダウンロードするには、[メタデータ アドレス] テキスト ボックスに などの
http://localhost:8087/CalculatorService/mex
MEX エンドポイントを使用することはできません。 WCF サービスの場合は、WSDL メタデータを使用して、次のようにhttp://localhost:8087/CalculatorService
メタデータをダウンロードする必要があります。http://localhost:8087/CalculatorService?wsdl
[メタデータ ソース] ページで [メタデータ ファイル (WSDL および XSD)] オプションを選択した場合は、[メタデータ エンドポイント] ページが表示されます。 [ メタデータ エンドポイント] ページで、インポートするメタデータ ファイルを指定します。 [ 追加] をクリックして、メタデータ ファイル ビューにインポートする メタデータ ファイルを 追加します。 [ メタデータ ファイルの追加 ] ダイアログ ボックスが開き、ディスクの場所でメタデータ ファイルを検索できます。
[ メタデータ ファイルの追加 ] ダイアログ ボックスで、メタデータに使用する WSDL ファイルと XSD ファイルの完全なセットを選択します。 これらのメタデータ ファイルを生成するには、コマンド プロンプトで以下のコマンドを入力します。
svcutil.exe /t:metadata http://localhost/service.svc/mex
[ 削除] をクリックして、[メタデータ ファイル] ビューで選択した メタデータ ファイルを 削除します。
Note
SvcUtil.exe は、Windows Vista の Microsoft Windows ソフトウェア開発キット (SDK) および .NET Framework ランタイム コンポーネントに含まれています。
Note
サービス メタデータを取得する際、セキュリティ保護された方法を使わないと、改ざんやなりすましのおそれがあります。 改ざんされたメタデータは、クライアントを悪意のあるサービスにリダイレクトしたり、侵害されたセキュリティ設定を含んでいたり、悪意のある XML 構造を含んでいたりする可能性があります。 メタデータ ドキュメントはサイズが非常に大きくなることがあり、多くの場合、ファイル システムに保存されます。 メタデータ ファイルが改ざんされていないことを確認する必要があります。
[ WCF サービス メタデータのインポートの概要 ] ページで、設定を確認します。 [ 戻る ] をクリックして変更を加えることができます。 次に、[ インポート ] をクリックして、WCF サービスの使用に使用する BizTalk 成果物と型を作成します。
[ BizTalk WCF サービス使用ウィザードの完了 ] ページで、[完了] をクリック します。 このウィザードをもう一度実行する場合は、[ このウィザードをもう一度実行 する] オプションを選択し、[完了] をクリック します。
BizTalk WCF サービス使用ウィザードは、BizTalk プロジェクト内に、WCF サービスを使用するために必要な BizTalk スキーマと型を作成します。 ポートの種類やマルチパート メッセージの種類などの BizTalk の型は、オーケストレーション内に作成されます。 ウィザードが作成するオーケストレーションは変更しないことをお勧めします。 変更する代わりに、目的に合った新しいオーケストレーションを BizTalk プロジェクトに追加することができます。 BizTalk WCF サービス使用ウィザードでは、 BizTalkServiceInstance.BindingInfo.xmlとBizTalkServiceInstance_Custom.BindingInfo.xml の 2 つのバインド ファイルも作成 されます 。 BizTalkServiceInstance.BindingInfo.xml は、開発コマンド ライン ツールまたはウィザードによってインポートできる BizTalk バインド ファイルで、標準バインド WCF アダプター (たとえば、WCF-NetMsmq アダプターや WCF-WSHttp アダプター) を使用して送信ポートを構成します。 BizTalkServiceInstance.BindingInfo.xml は、WCF-Custom アダプターを使用して送信ポートを構成するために、開発コマンド ライン ツールまたはウィザードによってインポートできる BizTalk バインド ファイルです。
生成されたバインド ファイルをインポートすると、WCF が設定されます 。アクション マッピング形式の Action プロパティ。 このプロパティの構成方法を確認するには、BizTalk 管理コンソールの [WCF 送信ポート トランスポートプロパティ] ダイアログ ボックスの [全般] タブにある [アクション] テキスト ボックスを確認します。
WCF を指定できます 。アクション プロパティは、2 つの異なる方法 (単一アクション形式とアクション マッピング形式) です。 このプロパティを 1 つのアクション形式で設定した場合 (たとえば、
http://contoso.com/Svc/Op1
送信メッセージの SOAPAction ヘッダーは常に、このプロパティで指定された値に設定されます)。 このプロパティをアクション マッピング形式で設定した場合、送信 SOAPAction ヘッダーは BTS によって決定されます 。操作 コンテキスト プロパティ。 たとえば、このプロパティが次の XML 形式と BTS に設定されている場合です。Operation プロパティは Op1 に設定され、WCF 送信アダプターは送信 SOAPAction ヘッダーにを使用http://contoso.com/Svc/Op1
します。<BtsActionMapping>
<Operation Name="Op1" Action="http://contoso.com/Svc/Op1" />
<Operation Name="Op2" Action="http://contoso.com/Svc/Op2" />
</BtsActionMapping>
送信メッセージがオーケストレーション ポートから送信される場合、オーケストレーション インスタンスは BTS を動的に設定します 。ポートの操作 名を持つ Operation プロパティ。 送信メッセージがコンテンツ ベースのルーティングでルーティングされる場合は、BTS を設定できます 。 パイプライン コンポーネントの Operation プロパティ。 BizTalk WCF 使用ウィザードによって生成されるポートには、BtsActionMapping> 要素の Name 属性と一致する名前を<持つ操作があります。 BTS を明示的に設定する必要はありません 。 ウィザードによって生成されたポートを介してメッセージを送信するときのオーケストレーションの操作プロパティ。
参照
BizTalk WCF サービス公開ウィザードを使用してオーケストレーションを WCF サービスとして公開する方法
BizTalk WCF サービス公開ウィザードを使用してスキーマを WCF サービスとして公開する方法