次の方法で共有


チュートリアル:WCF-BasicHttp アダプターを使用した WCF サービスの公開

はじめに

このチュートリアルでは、BizTalk WCF サービス発行ウィザードと WCF-BasicHttp アダプターを使用して、Windows Communication Foundation (WCF) サービスを BizTalk オーケストレーションとして発行します。 BizTalk オーケストレーションは、WCF-BasicHttp アダプターを使用して WCF エンドポイントを公開することで、別の Web サービスや WCF アプリケーションなどの外部クライアントに WCF サービスとして表示されます。 WCF-BasicHttp アダプターは、受信アダプターと送信アダプターの 2 つで構成されます。 このサンプルでは、このアダプターの受信側のみを使用して、WCF クライアント アプリケーションから HTTP または HTTPS プロトコルを介して WCF サービス要求を受信します。

WCF-BasicHttp アダプターは、BasicHttpBinding バインドを使用して、Web サービスの初期リリースと互換性のあるトランスポート/プロトコル スタック実装を提供し、BizTalk Serverと WCF 機能の間のブリッジとして機能します。 テキスト エンコードの HTTP または HTTPS トランスポートを使用して、WS-I 基本プロファイル 1.1 に準拠する ASMX ベースのレガシー Web サービスおよびクライアントと通信します。 WCF-BasicHttp アダプターを使用して、WS-* プロトコルによってサポートされる高度な Web 通信機能を利用することはできません。 それが必要な場合は、WCF-WSHttp アダプターを使用してください。

このチュートリアルでは、オーケストレーションを WCF サービスとして発行する WCF-BasicHttp 受信場所を作成する方法について説明します。 インターネット インフォメーション サービス (IIS) を構成して、その WCF サービスの分離ホスティングを提供します。 クライアント アプリケーションは、公開された WCF オーケストレーションを、外部クライアントがインターネット経由で公開された WCF サービスを呼び出して機能を使用する方法の例として呼び出します。

このチュートリアルを完了すると、次のタスクを実行できるようになります。

  • Visual Studio 内から Deploy コマンドを使用して、BizTalk アセンブリ内の BizTalk オーケストレーションの形式で WCF サービスをBizTalk Serverのローカル インスタンスに展開します。 Visual Studio からの展開では、オーケストレーション、パイプライン、スキーマ、マップなど、BizTalk ソリューションで使用されるリソースを含むアセンブリと共に生成される BizTalk アプリケーションが作成されます。

  • 展開後、BizTalk オーケストレーションは、BizTalk Server管理コンソールを使用して構成および制御できます。 このチュートリアルでは、BizTalk WCF サービス発行ウィザードによって作成される WCF サービスに送信された受信メッセージを受け入れるように、受信場所を WCF-BasicHttp 構成します。 受信場所は、IIS の BizTalk 分離ホストによってホストされ、受信要求に到達するための WCF サービスとして機能します。

Note

このチュートリアルでは、BizTalk WCF 発行ウィザードまたは BizTalk Web サービス発行ウィザードを使用して、BizTalk オーケストレーションとスキーマを WCF アダプターを使用して WCF サービスとして発行します。 SOAP アダプターを使用してオーケストレーションとスキーマを Web サービスとして発行するには、 BizTalk WCF 発行ウィザード または BizTalk Web サービス発行ウィザードを使用します

前提条件

このサンプルの手順を実行するには、使用する環境が次の前提条件を満たしている必要があります。

  • アセンブリをビルドして展開プロセスを実行するコンピューターと、サンプルを実行するコンピューターの両方に、Microsoft Windows Server 2008 SP2 または Windows Server 2008 R2、Microsoft .NET Framework 4、Microsoft BizTalk Serverが必要です。

  • アセンブリのビルドと展開プロセスの実行に使用するコンピューターには、Microsoft Visual Studio が必要です。

  • サンプルを実行するコンピューターには、WCF アダプターと WCF 管理ツールが必要です。 これらは、Microsoft BizTalk Server のセットアップ中にインストールするオプションです。

  • 管理タスクの実行に使用するコンピューターでは、BizTalk Server管理コンソール内でBizTalk Serverアプリケーション設定を構成するには、BizTalk Server Administrators グループのメンバーであるユーザー アカウントとしてを実行する必要があります。 また、アプリケーションの展開、ホスト インスタンスの管理、およびその他の必要なタスクを実行するには、このユーザー アカウントはローカル管理者グループのメンバーである必要もあります。

  • WCF 機能を必要とする任意のコンピューターで、Windows Communication Foundation サンプルのワンタイム セットアップ 手順で WCF サンプルの 1 回限りのセットアップ手順を完了します

  • サンプルを実行し、バインドまたは .msi ファイルをBizTalk Serverにインポートするコンピューターで、ホストが信頼されたホストでないことを確認するか、インポートが失敗します。

  • チュートリアル コードをダウンロードし、コンピューターに抽出する必要があります。 このチュートリアルは、WCF アダプターチュートリアル パッケージ全体の一部です。 WCFAdapterWalkthroughs.exe ファイルは、 BizTalk Server デベロッパー センターからhttps://go.microsoft.com/fwlink/?LinkId=194140ダウンロードできます。

サンプル BizTalk ソリューションの BizTalkApp を展開するには

  1. 自己解凍 WCFBasicHttpReceiveAdapter.exe ファイルを実行し、 C:\WCFBasicHttpReceiveAdapter フォルダーにファイルを抽出します。

  2. Microsoft Visual Studio で、 C:\WCFBasicHttpReceiveAdapter\WCFBasicHttpReceiveAdapter.sln ファイルを開きます。

  3. Microsoft.Samples.BizTalk.WCFBasicHttpReceiveAdapter.BizTalkApp アセンブリには、BizTalk Server オーケストレーション、マップ、および 2 つのスキーマが含まれています。 GAC にインストールする必要があり、これを行うには厳密な名前キー ファイルが必要です。 BizTalkApp プロジェクトを右クリックし、[プロパティ] をクリックします。 [ プロパティ ] ページで、[ 署名] をクリックし、[ アセンブリに署名する] を選択します。 [厳密な名前のキー ファイルの選択] ドロップダウン リストで下矢印をクリックし、[新規作成>] をクリックして<キー ファイル名のテキスト ボックスに「」と入力keyfile.snkします。 [ キー ファイルをパスワードで保護する] をオフにして、[OK] をクリック します

  4. ソリューション エクスプローラーで、BizTalkApp プロジェクトを右クリックし、[リビルド] をクリックします。

    Note

    この時点で、 ソリューションのビルドWCFClient アプリケーションのビルドを試みないでください。 WCFClient は、サンプルのこの時点でビルドする準備ができていません。

  5. BizTalkApp を展開し、DeliveryProcess.odx を開いて確認します。 オーケストレーションは、WCF-BasicHttp アダプターを使用して、HTTP 経由で WCF 要求を受け取ります。 変換マップを使用して要求を変更し、同じ WCF アダプターを使用して応答を再度送信します。

    1. このオーケストレーションは、WCF-BasicHttp アダプターによって公開される論理要求 - 応答ポートを備えています。 このポートは、後の手順で物理ポートにバインドされます。

    2. デザイナー ウィンドウで DeliveryProcess.odx の上部ノードを右クリックし、[ プロパティ] を選択します。 ポート の種類の Type Modifier プロパティが Public であることを確認 します

  6. ソリューション エクスプローラーで、BizTalkApp を右クリックし、[プロパティ] をクリックします。

    1. BizTalk 管理データベースがローカルでホストされていない場合は、別のデータベース サーバー を使用する場合は Server プロパティを変更します。 [ 配置 ] タブをクリックし、 データベース サーバー を指す Server プロパティを変更します。

    2. [アプリケーション名] プロパティが [WCFBasicHttpReceiveAdapter] に設定されていることを確認します。 これは、BizTalk ソリューションを展開する BizTalk アプリケーションの名前です。

    3. ソリューション エクスプローラーで、BizTalkApp を右クリックし、[配置] をクリックします。 ローカルに展開しない場合は、リモート接続を許可するように SQL Server を構成する必要があります。 詳細については、「方法: SQL Serverでリモート接続を有効にする」を参照してください。

BizTalk WCF サービス公開ウィザードを使用して、サンプル オーケストレーションを公開するには

  1. この手順では、新しくデプロイされたオーケストレーション アセンブリを実行し、WCF サービスとして発行します。 これを行うには、[スタート] ボタンをクリックし、[すべてのプログラム] をポイントし、[MicrosoftBizTalk Server] をポイントして、[BizTalk WCF サービス発行ウィザード] をクリックします。

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

  3. [ WCF サービスの種類] ページで、次のアクションを実行して、発行する WCF サービスの種類と、WCF メッセージを受信するための BizTalk エンドポイントを指定し、[ 次へ] をクリックします。

    1. [ サービス エンドポイント ] オプションを選択します。このオプションは、アセンブリ内のオーケストレーションから WCF サービスを発行することを示します。 [アダプター名 (トランスポートの種類)] ドロップダウン リストから [WCF-BasicHttp] を選択します。

    2. [Enable metadata endpoint チェック]\(メタデータ エンドポイントチェックを有効にする\) ボックスを選択して、IIS によってホストされる WCF 受信場所に WCF サービス メタデータを発行します。 このチェック ボックスを選択すると、serviceMetadata> 要素truehttpGetEnabled 属性が < Web.Config に設定されます。このメタデータは、HTTP/GET 要求で要求されたときに取得されます。 後で、SvcUtil.exe ツールを使用してこのデータを取得し、WCF サービスの呼び出しに使用するクライアント コードのプロキシ クラスを生成します。

    3. [ 次のアプリケーションで BizTalk 受信場所を作成 する] オプションを選択して、WCF-BasicHttp アダプター用に生成された各 .svc ファイルに対応する受信ポートと場所を作成します。 受信ポートと場所が生成される BizTalk アプリケーション名 WCFBasicHttpReceiveAdapter を選択し、[ 次へ] をクリックします。

      ウィザードが、関連付けられている受信場所を表すバインド ファイル Binding.XML を作成します。 このファイルは Web ディレクトリにあり、後で BizTalk Server 管理コンソールから手動でインポートできます。

      Note

      ここで、展開した BizTalk アプリケーションを選択しない場合は、既定のアプリケーションが選択されます。

  4. [ WCF サービスの作成 ] ページで、[ BizTalk オーケストレーションを WCF サービスとして発行する] を選択し、[ 次へ] をクリックします。 これにより、次の手順で指定したオーケストレーションが WCF サービスとして発行されます。

  5. 公開するオーケストレーションを含むアセンブリを選択します。 [BizTalk アセンブリ] ページの BizTalk アセンブリ ファイル (*.dll) テキスト ボックスで、[参照] をクリックして C:\WCFBasicHttpReceiveAdapter\BizTalkApp\bin\Development フォルダーを参照し、発行するサンプル オーケストレーションを含む Microsoft.Samples.BizTalk.WCFBasicHttpReceiveAdapter.BizTalkApp アセンブリをダブルクリックし、[開く] をクリックし、[次へ] をクリックします。

  6. [ オーケストレーションとポート] ページで、ページで [ Port: DeliveryRequestPort ] ノードが選択されていることを確認し、[ 次へ] をクリックします。 このノードを選択すると、対応する上位レベルのノードも選択されます。 このポートは、WCF-BasicHttp アダプターをホストする要求 - 応答の受信場所で公開されます。

  7. [WCF サービスのプロパティ] ページの [WCF サービス] テキスト ボックスの [ターゲット名前空間] に、この公開された WCF サービスで使用する URI を入力し、[次へ] をクリックします。 このチュートリアルでは、 [WCF サービス] テキスト ボックスの [ターゲット名前空間] に既定の URI "<http://tempuri.org/>" のままにします。

  8. [ WCF サービスの場所] ページで、次の操作を実行して、作成する WCF サービスの場所を指定し、[ 次へ] をクリックします。

    1. [ 場所 ] テキスト ボックスに、WCF サービスを実行する Web ディレクトリ名を入力するか、[ 参照 ] をクリックして Web ディレクトリを選択します。 このチュートリアルでは、アセンブリ名は仮想ディレクトリと同じであるため、既定の場所 (http://localhost/Microsoft.Samples.BizTalk.WCFBasicHttpReceiveAdapter.BizTalkApp) は [ 場所 ] テキスト ボックスのままにします。

    2. [ WCF サービスへの匿名アクセスを許可する ] オプションを選択し、[ 次へ] をクリックします。 このオプションを選択すると、作成された仮想ディレクトリへの匿名アクセスが許可されます。 このチュートリアルでは、認証なしのトランスポート セキュリティ モードを使用するため、このウィザードで作成する Web アプリケーションの匿名認証を許可するには、このオプションを選択する必要があります。

  9. [ WCF サービスの概要 ] ページで、[ 作成 ] をクリックして WCF サービスを作成します。 この手順では、指定した Web ディレクトリを通じて使用できる、指定したオーケストレーション用の受信ポートを作成します。

  10. [ BizTalk WCF サービス発行ウィザードの完了 ] ページで、[完了] をクリック します

サンプル BizTalk アプリケーションを有効にするには

  1. [スタート] ボタンをクリックし、[すべてのプログラム] をポイントし、[MicrosoftBizTalk Server] をポイントして、[BizTalk Server管理] をクリックします。

  2. BizTalk Server管理コンソールで、[アプリケーション]、[WCFBasicHttpReceiveAdapter]、[オーケストレーション] の順に展開し、[DeliveryProcess] オーケストレーションを右クリックし、[プロパティ] をクリックして、バインド情報を次のように構成します。

    1. [ オーケストレーションのプロパティ ] ダイアログ ボックスで、[ バインド] をクリックし、[ ホスト ] を BizTalkServerApplication に設定します。

    2. [ オーケストレーションのプロパティ ] ダイアログ ボックスで、 バインドする DeliveryRequestPort の受信ポートを選択します。 このチュートリアルでは、前の手順で BizTalk WCF サービス発行ウィザードによって作成された受信ポートを選択し、[OK] をクリック します

  3. BizTalk Server管理コンソールで、[WCFBasicHttpReceiveAdapter] を右クリックし、[スタート] をクリックし、[アプリケーションの起動] ダイアログ ボックスで [開始] をクリックします。

公開された WCF サービスをホストする Web アプリケーションを構成するには

  1. [ スタート] ボタンをクリックし、[ 管理者ツール] をポイントし、[ インターネット インフォメーション サービス (IIS) 7.0 マネージャー] をクリックします。

  2. IIS マネージャーで、[ サイト] を展開し、[ 既定の Web サイト] を展開し、BizTalk WCF サービス発行ウィザードで作成した Web アプリケーション Microsoft.Samples.BizTalk.WCFBasicHttpReceiveAdapter.BizTalkApp 展開します。

  3. このサービスが実行されるアプリケーション プールを作成します。 [ アプリケーション プール] を右クリックし、[ アプリケーション プールの追加] をクリックし、アプリケーション プールの名前を入力して、[OK] をクリック します

  4. [ アプリケーション プール] を展開し、先ほど作成したアプリケーション プールを右クリックし、[ 詳細設定] を選択します。 [プロセス モデル] セクションの [ID] フィールドに、BizTalk Server データベースにアクセスできるアカウントを入力します。

  5. IIS マネージャーで、[ コンテンツ ビュー] をクリックします。 右側のウィンドウで、 BizTalk WCF サービス発行ウィザード によって作成された WCF サービス .svc ファイルを右クリックし、[ 参照] をクリックします。 Internet Explorer が開き、実行中の WCF サービスが正しく作成されたことを示すページが表示されます。 このページには、完全な WSDL アドレスも含まれます。サービス メタデータ ツール (svcutil.exe) で、このアドレスをコピーして使用することで、サービスのクライアント アプリケーションを作成するために使用できるプロキシ コードおよび構成ファイルを取得できます。

  6. 前の手順でインターネットに表示エクスプローラーページの完全な WSDL アドレスを使用して、SvcUtil.exe コマンド ラインをクリップボードにコピーします。

サンプル クライアント アプリケーション WCFClient のプロキシ クラスを作成するには

  1. WCF クライアント サンプル アプリケーションが WCF サービスを呼び出すことができるようにプロキシ クラスを作成します。 プロキシは必ずしも必要ではありませんが、手動によるコードの記述は非常に複雑なので、プロキシを作成することをお勧めします。 Visual Studio コマンド プロンプトを開き、プロキシ クラスとアプリケーション構成ファイルを配置する C:\WCFBasicHttpReceiveAdapter\WCFClient フォルダーに移動します。

  2. 前の手順でコピーした完全な WSDL アドレスで svcutil.exe コマンド ラインを貼り付け、 Enter キーを押してプロキシ クラスとアプリケーション構成ファイルを作成します。 このコマンド ラインでは、プロキシ クラスに BizTalkServiceInstance.cs が作成され、アプリケーション構成ファイルの output.config が作成されます。

  3. Visual Studio のソリューション エクスプローラーで、[WCFClient] を右クリックし、[追加] をポイントして、[既存の項目] をクリックします。

  4. [既存のアイテムの追加] ダイアログ ボックスで、WCFClient フォルダーを参照し、[ファイルの種類] ドロップダウン リストで [すべてのファイル (*.*)] を選択し、BizTalkServiceInstance.cs ファイルと output.config ファイルを選択し、[追加] をクリックします。

  5. WCFClient プロジェクトの場合は、[参照] を展開し、WCFClient プロジェクトがその参照の 1 つとして System.ServiceModel を持っていることを確認します。

  6. WCFClient プロジェクトを展開し、[output.config] を右クリックし、[名前の変更] をクリックし、新しい名前 App.config 入力します。

  7. Program.cs をダブルクリックして、 によって生成されたプロキシ クラスを使用して発行された WCF サービスを呼び出す方法 Svcutil.exe確認します。 WCF サービスのインスタンス化と呼び出しの呼び出しは、 Microsoft_Samples_BizTalk_WCFBasicHttpReceiveAdapter_BizTalkApp_DeliveryProcess_DeliveryRequestPortClient クラスを使用したコーディングのシンプルさにおいてローカル呼び出しのように見えます。 リモート WCF サービスを呼び出すために追加のコードは必要ありません。

  8. Visual Studio の [デバッグ ] メニューで、[デバッグ なしで開始 ] をクリックして WCFClient を実行します。 クライアント コードは DeliveryItem メッセージを作成し、WCF サービスを呼び出し、Address、ProductID、Amount を渡します。

    DeliveryItem deliveryRequestItem = new DeliveryItem();
    deliveryRequestItem.Address = "One Microsoft Way";
    deliveryRequestItem.ProductID = "00A120c";
    deliveryRequestItem.Amount = "300";
    DeliveryRequestPortClient deliveryProcessClient = new DeliveryRequestPortClient("BasicHttpBinding_ITwoWayAsync");
    DeliveryItem1 deliveryConfirmation = deliveryProcessClient.Submit(deliveryRequestItem);
    

    クライアントが発行された WCF サービスから応答メッセージを正常に受信すると、応答メッセージに配信確認番号 (ProductID と Address の連結) が表示されます。

    deliveryRequestItem で呼び出される送信操作

    返送される配信確認番号: 00A120c300One Microsoft Way

    続行するには、いずれかのキーを押します. . .

参照

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