次の方法で共有


BizTalk WCF サービス使用ウィザードを使用して WCF サービスを使用する方法

BizTalk アダプター フレームワークは、アダプター スキーマと BizTalk 型を BizTalk プロジェクトに追加する方法を提供します。 BizTalk WCF サービス使用ウィザードを使用すると、WCF 送信アダプターを BizTalk プロジェクトに追加できます。 WCF 送信アダプターの場合は、送信ポートの既存のメタデータ交換 (MEX) エンドポイントを選択する必要があります。 次に、スキーマと型の生成に使用する情報を入力する必要があります。 ウィザードが完了すると、WCF サービスを使用するために必要なスキーマと型が BizTalk プロジェクトに追加されます。

WCF 送信アダプターのスキーマと型をプロジェクトに追加するには

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

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

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

  4. [ メタデータ ソース ] ページで、インポートするメタデータのソースを選択し、[ 次へ] をクリックします。

    メタデータ ソース ページ

    実行中のサービスのメタデータ交換エンドポイントからメタデータ ドキュメントをダウンロードするには、 Metadata Exchange (MEX) エンドポイント オプションを選択します。 これにより、クライアントを WCF サービスに対して機能させる送信ポートを作成できます。 このオプションを使用するには、サービス エンドポイントが HTTP/GET または HTTPS/GET 要求を使用して取得するためのサービス メタデータを発行する必要があります。 サービス エンドポイントでは、基本認証スキームを使用したユーザー名とパスワードの形式で、匿名ユーザー資格情報またはユーザー資格情報を使用したメタデータへのアクセスも許可する必要があります。

    基本認証スキームでは、資格情報はプレーンテキストとして送信され、簡単にインターセプトされる可能性があります。 このスキームでは、サービスから返される情報に対する保護も提供されません。 データを暗号化するには、Secure Sockets Layer (SSL) を使用する必要があります。

    他のメタデータ ドキュメントをインポートするには、 メタデータ ファイル (WSDL と XSD) オプションを選択して、ファイル システムからメタデータをインポートします。

    すべてのサービスがメタデータを公開する必要があるわけではありません。 メタデータの公開を無効のままにすると、サービスの攻撃対象領域が減少し、意図しない情報漏えいのリスクが軽減されます。

  5. [メタデータ ソース] ページで [メタデータ Exchange (MEX) エンドポイント] オプションを選択した場合、[メタデータ エンドポイント] ページが表示されます。 [ メタデータ エンドポイント] ページで、WS-Metadata Exchange または Http-Get 経由でダウンロードするためのメタデータを提供する実行中のサービスの URL を指定します。 URL からメタデータ ドキュメントを取得するには、[ 取得] をクリックします。 実行中のサービスで基本認証スキームを使用するユーザー資格情報が必要な場合は、[ 編集 ] をクリックして BizTalk WCF サービス使用ウィザード ダイアログ ボックスを開きます。このダイアログ ボックスでは、サービスの実行時に使用するユーザー名とパスワードを指定できます。

    メタデータ エンドポイント ページ

    HTTP または HTTPS を介して発行された WCF サービスのメタデータをダウンロードするには、[メタデータ アドレス] テキスト ボックスにhttp://localhost:8087/CalculatorService/mexなどの MEX エンドポイントを使用することはできません。 WCF サービスの場合は、WSDL メタデータを使用して、 http://localhost:8087/CalculatorService 次のようにメタデータをダウンロードする必要があります。 http://localhost:8087/CalculatorService?wsdl

  6. [メタデータ ソース] ページで [メタデータ ファイル (WSDL と XSD)] オプションを選択した場合、[メタデータ エンドポイント] ページが表示されます。 [ メタデータ エンドポイント] ページで、インポートするメタデータ ファイルを指定します。 [ 追加] をクリックして、メタデータ ファイル ビューにインポートする メタデータ ファイル を追加します。 [ メタデータ ファイルの追加 ] ダイアログ ボックスが開き、ディスクの場所でメタデータ ファイルを検索できます。

    [ メタデータ ファイルの追加 ] ダイアログ ボックスで、メタデータに使用する WSDL ファイルと XSD ファイルの完全なセットを選択します。 これらのメタデータ ファイルを生成するには、コマンド プロンプトで次のコマンドを入力します。

    svcutil.exe /t:metadata http://localhost/service.svc/mex

    [ 削除 ] をクリックして、[メタデータ ファイル] ビューで選択した メタデータ ファイルを 削除します。

    メタデータ ファイルページ

    SvcUtil.exe は、Windows Vista および .NET Framework ランタイム コンポーネントの Microsoft Windows ソフトウェア開発キット (SDK) に含まれています。

    サービス メタデータは、セキュリティで保護されていない方法で取得された場合に改ざんされたり、スプーフィングされたりする可能性があります。 改ざんされたメタデータにより、クライアントが悪意のあるサービスにリダイレクトされたり、セキュリティ設定が侵害されたり、悪意のある XML 構造が含まれたりする可能性があります。 メタデータ ドキュメントは非常に大きくなる可能性があり、頻繁にファイル システムに保存されます。 メタデータ ファイルが改ざんされていないことを確認する必要があります。

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

  8. [BizTalk WCF サービスの使用ウィザードの完了] ページで、[完了] をクリックします。 このウィザードをもう一度実行する場合は、[ このウィザードをもう一度実行 する] オプションを選択し、[完了] をクリック します

    BizTalk WCF サービス使用ウィザードは、WCF サービスを使用するために必要な BizTalk スキーマと種類を 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.Action プロパティを指定する方法は 2 つあります: 単一アクション形式とアクションマッピング形式です。 このプロパティを単一のアクション形式 ( http://contoso.com/Svc/Op1 など) で設定した場合、送信メッセージの SOAPAction ヘッダーは常に、このプロパティで指定された値に設定されます。 アクション マッピング形式でこのプロパティを設定した場合、送信 SOAPAction ヘッダーは BTS.Operation コンテキスト プロパティによって決定されます。 たとえば、このプロパティが次の 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.Operationプロパティを明示的に設定する必要はありません。

こちらもご覧ください

BizTalk WCF サービス発行ウィザードを使用してオーケストレーションを WCF サービスとして発行する方法
BizTalk WCF サービス発行ウィザードを使用してスキーマを WCF サービスとして発行する方法