WCF-Custom 受信場所は、プログラムまたは BizTalk 管理コンソールを使用して構成できます。
構成プロパティ
BizTalk Explorer オブジェクト モデルを使用すると、プログラムを使用して受信場所を作成および構成できます。 BizTalk Explorer オブジェクト モデルは、TransportTypeData の読み取り/書き込みプロパティを持つIReceiveLocation 受信場所の構成インターフェイスを公開します。 このプロパティは、XML 文字列の名前と値のペアの形式で、WCF-Custom 受信場所の構成プロパティ バッグを受け入れます。 BizTalk Explorer オブジェクト モデルでこのプロパティを設定するには、IReceiveLocation インターフェイスの InboundTransportLocation プロパティを設定する必要があります。
IReceiveLocation インターフェイスの TransportTypeData プロパティを設定する必要はありません。 設定されていない場合、WCF-Custom アダプターは、次の表に示すように、WCF-Custom 受信場所の構成の既定値を使用します。
次の表に、WCF-Custom 受信場所の BizTalk Explorer オブジェクト モデルで設定できる構成プロパティの一覧を示します。
| プロパティ名 | タイプ | 説明 |
|---|---|---|
| アイデンティティ | XML Blob 例: <アイデンティティ> <userPrincipalName value="username@contoso.com" /> </アイデンティティ> |
この受信場所が提供するサービスの ID を指定します。
Identity プロパティに指定できる値は、セキュリティ構成によって異なります。 これらの設定により、クライアントはこの受信場所を認証できます。 クライアントとサービス間のハンドシェイク プロセスでは、Windows Communication Foundation (WCF) インフラストラクチャによって、想定されるサービスの ID がこの要素の値と一致することが保証されます。 既定値は空の文字列です。 |
| バインディングタイプ | 列挙型 - basicHttpBinding - customBinding - mexHttpBinding - mexHttpsBinding - mexNamedPipeBinding(メックスネームドパイプバインディング) - mexTcpBinding - netMsmqBinding - netNamedPipeBinding - netPeerTcpBinding - netTcpBinding - wsDualHttpBinding - wsFederationHttpBinding - wsHttpBinding |
この受信場所で使用するエンドポイントに使用するバインディングの種類を指定します。
手記: カスタム バインドを使用する場合は、 BindingType プロパティをカスタム バインドで構成できます。 カスタム バインドの使用方法の詳細については、「 WCF アダプターで WCF 拡張ポイントを有効にする方法」を参照してください。 既定値は空の文字列です。 |
| BindingConfiguration | XML Blob 例: <binding name="netNamedPipeBinding"><security mode="None" /></binding> |
<binding> 要素を含む XML 文字列を指定して、Windows Communication Foundation (WCF) によって提供されるさまざまな種類の定義済みバインディングを構成します。 システム提供のバインディングとカスタム バインドの詳細については、「関連項目」の適切なトピックを参照してください。
手記: BizTalk Server では、 BindingConfiguration プロパティを使用して構成できるバインディング拡張要素のすべての型がサポートされているわけではありません。 既定値は空の文字列です。 |
| ServiceBehaviorConfiguration | XML Blob 例: <behavior name="SampleServiceBehavior"><serviceMetadata httpGetEnabled="true" httpGetUrl="http://mycomputer:9995/SampleMex" /><serviceCredentials /></behavior> |
WCF サービスの動作設定を構成するには<serviceBehaviors> 要素の <behavior> 要素を使用して XML 文字列を指定します。
<serviceBehaviors>要素の詳細については、「関連項目」の該当するトピックを参照してください。 既定値は空の文字列です。 |
| EndpointBehaviorConfiguration | XML Blob 例: <behavior name="sampleBehavior"><callbackTimeouts /></behavior> |
XML文字列を指定して、<endpointBehaviors> 要素内の <behavior> 要素を用いて WCF エンドポイントの動作設定を構成します。
<endpointBehaviors> 要素の詳細については、「関連項目」の適切なトピックを参照してください。
手記: BizTalk Server では、 EndpointBehaviorConfiguration プロパティを使用して構成できる動作拡張要素のすべての種類がサポートされているわけではありません。 既定値は空の文字列です。 |
| CredentialType | 列挙型 - なし: この受信場所が外部サービスをポーリングするために要請メッセージを送信する場合、またはこの受信場所が外部サービスをポーリングする必要がない場合は、資格情報を使用しないでください。 - IssueTicket: Enterprise Single Sign-On (SSO) を使用してクライアント資格情報を取得し、SSO チケットを発行します。 このオプションでは、この受信場所がユーザー アカウントを偽装して SSO チケットを発行できるようにするセキュリティ モードを使用する必要があります。 - UserAccount: 受信場所が外部サービスをポーリングするために要請メッセージを送信する場合は、 Username プロパティと Password プロパティで指定された資格情報を使用します。 - GetCredentials: この受信場所が外部サービスをポーリングするために要請メッセージを送信する場合 は、AffiliateApplicationName プロパティで指定された SSO 関連アプリケーションを使用します。 |
外部サービスをポーリングするときに使用する、この受信場所の資格情報の種類を指定する 既定値: なし |
| UserName | 糸 | 外部サービスをポーリングして応答メッセージを取得するときに使用する、この受信場所のユーザー名を指定します。 このプロパティは、 CredentialType プロパティが UserAccount に設定されている場合に必要です。 既定値は空の文字列です。 |
| パスワード | 糸 | 外部サービスをポーリングして応答メッセージを取得するときに使用する、この受信場所のパスワードを指定します。 このプロパティは、 CredentialType プロパティが UserAccount に設定されている場合に必要です。 既定値は空の文字列です。 |
| AffiliateApplicationName | 糸 | SSO 関連アプリケーションを指定して、この受信場所が外部サービスをポーリングする要請メッセージを送信するときに使用する外部資格情報を返します。 指定された SSO 関連アプリケーションには、この受信場所を実行する Windows アカウントと外部サービスのアカウントとの間にマッピングが必要です。 このプロパティは、 CredentialType プロパティが GetCredentials に設定されている場合に必要です。 既定値は空の文字列です。 |
| 順序処理 | ボーリアン | メッセージの処理時にメッセージの順序を保持するかどうかを指定します (NetMsmq バインドで使用するため)。 既定値: False |
| InboundBodyLocation | 列挙型 - UseBodyElement - 受信メッセージの SOAP Body 要素の内容を使用して、BizTalk メッセージ本文パーツを作成します。 Body 要素に複数の子要素がある場合、最初の要素のみが BizTalk メッセージ本文パーツになります。 - UseEnvelope - 受信メッセージの SOAP エンベロープ 全体から BizTalk メッセージ本文部分を作成します。 - UseBodyPath - InboundBodyPathExpression プロパティの本文パス式を使用して、BizTalk メッセージ本文パーツを作成します。 本文パス式は、受信メッセージの SOAP Body 要素の直接の子要素に対して評価されます。 このプロパティは、要請応答ポートに対してのみ有効です。 InboundBodyLocation プロパティの使用方法の詳細については、「WCF アダプターのメッセージ本文の指定」を参照してください。 |
受信 WCF メッセージの SOAP Body 要素のデータ選択を指定します。 既定値: UseBodyElement |
| InboundBodyPathExpression | 糸 InboundBodyPathExpression プロパティの使用方法の詳細については、「WCF アダプターのプロパティ スキーマとプロパティ」を参照してください。 |
BizTalk メッセージ本文部分の作成に使用される受信メッセージの特定の部分を識別する本文パス式を指定します。 このボディパス式は、受信メッセージの SOAP Body ノードの直接の子要素に対して評価されます。 この本文パス式が複数のノードを返す場合、BizTalk メッセージ本文部分には最初のノードのみが選択されます。
InboundBodyLocation プロパティが UseBodyPath に設定されている場合は、このプロパティが必要です。 既定値は空の文字列です。 |
| InboundNodeEncoding | 列挙型 - Base64 - Base64 エンコード。 - 16 進 - 16 進エンコード。 - 文字列 - テキスト エンコード - UTF-8。 - XML - WCF アダプターは、 InboundBodyPathExpression の本文パス式によって選択されたノードの外部 XML を使用して BizTalk メッセージ本文を作成します。 |
WCF-Custom 受信アダプターが InboundBodyPathExpression で指定された本文パス式で識別されるノードをデコードするために使用するエンコードの種類を指定します。
InboundBodyLocation プロパティが UseBodyPath に設定されている場合は、このプロパティが必要です。 既定値: XML |
| OutboundBodyLocation | 列挙型 - UseBodyElement - BizTalk メッセージ本文パーツを使用して、送信応答メッセージの SOAP 本文 要素のコンテンツを作成します。 - UseTemplate - OutboundXMLTemplate プロパティで指定されたテンプレートを使用して、送信応答メッセージの SOAP Body 要素の内容を作成します。 OutboundBodyLocation プロパティの使用方法の詳細については、「WCF アダプターのメッセージ本文の指定」を参照してください。 |
送信 WCF メッセージの SOAP Body 要素のデータ選択を指定します。 このプロパティは、要求/応答の受信場所に対してのみ有効です。 既定値: UseBodyElement |
| OutboundXMLTemplate | 糸 OutboundXMLTemplate プロパティの使用方法の詳細については、「WCF アダプターのメッセージ本文の指定」を参照してください。 |
送信応答メッセージの SOAP Body 要素のコンテンツに XML 形式のテンプレートを指定します。
OutboundBodyLocation プロパティが UseTemplate に設定されている場合は、このプロパティが必要です。 このプロパティは、要求/応答の受信場所に対してのみ有効です。 既定値は空の文字列です。 |
| DisableLocationOnFailure | ボーリアン | 受信パイプラインの障害またはルーティングエラーによって受信処理が失敗する受信場所を無効にするかどうかを指定します。 既定値: False |
| 失敗時にメッセージを中断 | ボーリアン | 受信パイプラインの障害またはルーティングエラーのために受信処理に失敗した要求メッセージを中断するかどうかを指定します。 既定値: True |
| IncludeExceptionDetailInFaults | ボーリアン | デバッグ目的でクライアントに返される SOAP エラーの詳細にマネージド例外情報を含めるかどうかを指定します。 既定値: False |
| ReferencedBindings | XML Blob 例: < BindingConfiguration vt="8"> <wsFederationHttpBinding> <バインディング名="sampleBinding"> <セキュリティモード="Message"> <メッセージ 発行されたキーのタイプ="非対称キー"> <issuer address="http://www.contoso.com/samplests" binding="wsFederationHttpBinding" bindingConfiguration="contosoSTSBinding"/> </メッセージ> </安全> </バインディング> </wsFederationHttpBinding> </BindingConfiguration> < ReferencedBindings vt="8"> <バインド> <wsFederationHttpBinding> <binding name="contosoSTSBinding"> <セキュリティモード="メッセージ"> <message negotiateServiceCredential="false"> <issuer address="http://northwind.com/samplests" bindingConfiguration="northwindBinding" binding="wsHttpBinding"> </発行者> </メッセージ> </安全> </バインディング> </wsFederationHttpBinding> <wsHttpBinding> <binding name="northwindBinding"> <セキュリティモード="Message"> <メッセージ クライアント資格情報タイプ="証明書" /> </安全> </バインディング> </wsHttpBinding> </バインド> </ReferencedBindings>Note:ReferencedBinding プロパティには、 BindingConfiguration プロパティで使用されるバインド構成を含めてはなりません。 |
wsFederationHttpBinding および customBinding の <issuer> 要素の bindingConfiguration 属性によって参照されるバインディング構成を指定します。これは、セキュリティ トークンを発行するセキュリティ トークン サービス (STS) を示します。
<issuer>要素の詳細については、https://go.microsoft.com/fwlink/?LinkId=83476のトピック「<issuer>」を参照してください。 wsFederationHttpBinding および customBinding の <issuer> 要素を含むバインディング情報は、WCF-Custom および WCF-CustomIsolated アダプターの BindingConfiguration プロパティを使用して構成できます。 このプロパティに対して参照されるすべてのバインディング構成は、 <bindings> 要素の形式で配置する必要があります。 手記: トランスポート プロパティ ダイアログ ボックスの [ バインド ] タブでこのプロパティを構成することはできません。 このプロパティは、WCF-Custom アダプターと WCF-CustomIsolated アダプターのトランスポート プロパティ ダイアログ ボックスの [ インポート/エクスポート ] タブを使用してインポートおよびエクスポートできます。 手記:<issuer> 要素の bindingConfiguration 属性は、このプロパティの有効なバインド名を参照する必要があります。 手記:参照されるバインディング構成の <issuer> 要素は、この参照チェーンが循環依存関係を作成しない場合に、プロパティで別のバインド構成を参照することもできます。 既定値は空の文字列です。 |
BizTalk 管理コンソールを使用して WCF-Custom 受信場所を構成する
BizTalk 管理コンソール WCF-Custom 受信場所アダプター変数を設定できます。 受信場所にプロパティが設定されていない場合は、BizTalk 管理コンソールで設定された既定の受信ハンドラー値が使用されます。
注
次の手順を完了する前に、受信ポートを既に追加しておく必要があります。 詳細については、「 受信ポートを作成する方法」を参照してください。
WCF-Custom 受信場所の変数を構成する
WCF-Custom アダプターを構成するときに、カスタム バインド要素、カスタム動作要素、カスタム チャネル コンポーネントなどの WCF 拡張ポイントを使用する場合は、BizTalk 処理コンピューター (ランタイム コンピューター) と管理コンピューターの両方のグローバル アセンブリ キャッシュに、拡張ポイントとすべての依存アセンブリを実装するアセンブリを追加する必要があります。 さらに、拡張コンポーネントを machine.config ファイルに登録する必要があります。 WCF カスタム アダプターで WCF 拡張ポイントを使用する方法の詳細については、「WCF アダプターで WCF 拡張ポイントを有効にする方法」を参照してください。
BizTalk 管理コンソールで、BizTalk Server 管理を展開し、 BizTalk グループを展開し、 アプリケーションを展開し、受信場所を作成するアプリケーションを展開します。
BizTalk 管理コンソールの左側のウィンドウで、[ 受信ポート ] ノードをクリックします。 次に、右側のウィンドウで、既存の受信場所に関連付けられている受信ポート、または新しい受信場所に関連付ける受信ポートを右クリックし、[ プロパティ] をクリックします。
[ 受信ポートのプロパティ ] ダイアログ ボックスの左側のウィンドウで、[ 受信場所] を選択し、右側のウィンドウで既存の受信場所をダブルクリックするか、[ 新規] をクリックして新しい受信場所を作成します。
[受信場所のプロパティ] ダイアログ ボックスの [種類] の横にある [トランスポート] セクションで、ドロップダウン リストから [WCF-Custom] を選択し、[構成] をクリックします。
[ WCF-Custom トランスポートのプロパティ ] ダイアログ ボックスの [ 全般 ] タブで、WCF-Custom 受信場所のエンドポイント アドレスとサービス ID を構成します。 「トランスポートのプロパティWCF-Custom」 ダイアログ ボックスの 「全般」 タブの詳細については、「UI ガイダンスと開発者 API 名前空間リファレンス」の 「WCF-Custom トランスポートのプロパティ」ダイアログ ボックスの「全般」、「受信」 タブを参照してください。
[ WCF-Custom トランスポートのプロパティ ] ダイアログ ボックスの [ バインド ] タブで、WCF のさまざまな種類の定義済みバインドまたはカスタム バインドを構成します。 [WCF-Custom トランスポートのプロパティ] ダイアログ ボックスの [バインド] タブの詳細については、「UI ガイダンスと開発者 API 名前空間のリファレンス」の「WCF-Custom トランスポートのプロパティ」ダイアログ ボックスの [受信]、[バインド] タブを参照してください。
[ WCF-Custom トランスポートのプロパティ ] ダイアログ ボックスの [ 動作 ] タブで、この受信場所のエンドポイントとサービスの動作を構成します。 エンドポイントの動作は、サービスまたはクライアントの機能を変更または拡張する動作拡張要素のセットです。 「動作」 タブについて、「WCF-Custom トランスポートプロパティ」 ダイアログ ボックスの詳細は、「UI ガイダンスと開発者 API 名前空間のリファレンス」の 「WCF-Custom トランスポートプロパティ ダイアログ ボックスの [受信]、[動作]」 タブを参照してください。
[トランスポートのプロパティのWCF-Custom] ダイアログ ボックスの [その他] タブで、外部サービスをポーリングするときに使用するこの受信場所の資格情報を構成し、この受信場所がメッセージの処理時にメッセージの順序を保持するかどうかを構成します。 トランスポートプロパティのWCF-Custom ダイアログ ボックスの [その他] タブの詳細については、UI ガイダンスと開発者 API 名前空間リファレンス の WCF-Custom トランスポートプロパティ ダイアログ ボックスの [受信], [その他] タブを参照してください。
[ トランスポートのプロパティのWCF-Custom ] ダイアログ ボックスの [ メッセージ ] タブで、SOAP Body 要素のデータ選択を指定します。 [WCF-Custom トランスポートのプロパティ] ダイアログ ボックスの [メッセージ] タブの詳細については、「UI ガイダンスと開発者 API 名前空間リファレンス」の「WCF-Custom トランスポート プロパティ] ダイアログ ボックスの [受信]、[メッセージ] タブを参照してください。
[WCF-Custom トランスポートのプロパティ] ダイアログ ボックスの [インポート/エクスポート] タブで、[全般] タブの [アドレス (URI) とエンドポイント ID のプロパティ、バインド] タブのバインド情報、およびこの受信場所の [動作] タブのエンドポイントの動作をインポートおよびエクスポートします。 [WCF-Custom トランスポートのプロパティ] ダイアログ ボックスの [インポート/エクスポート] タブの詳細については、「UI ガイダンスと開発者 API 名前空間リファレンス」の「WCF-Custom トランスポート プロパティ] ダイアログ ボックスの [受信]、[インポート/エクスポート] タブを参照してください。
WCF-Custom 受信場所をプログラムで構成する
次の形式を使用してプロパティを設定できます。
<CustomProps>
<InboundBodyPathExpression vt="8" />
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<BindingConfiguration vt="8"><binding name="netNamedPipeBinding"><security mode="None" /></binding></BindingConfiguration>
<OutboundXmlTemplate vt="8"><bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="xml"/></OutboundXmlTemplate>
<CredentialType vt="8">GetCredentials</CredentialType>
<Identity vt="8" />
<ServiceBehaviorConfiguration vt="8"><behavior name="SampleServiceBehavior"><serviceMetadata httpGetEnabled="true" httpGetUrl="http://mycomputer:9995/SampleService/Mex" /><serviceCredentials /></behavior></ServiceBehaviorConfiguration>
<Password vt="1" />
<OrderedProcessing vt="11">-1</OrderedProcessing>
<IncludeExceptionDetailInFaults vt="11">0</IncludeExceptionDetailInFaults>
<AffiliateApplicationName vt="8">SampleAffiliateApplication</AffiliateApplicationName>
<DisableLocationOnFailure vt="11">0</DisableLocationOnFailure>
<SuspendMessageOnFailure vt="11">0</SuspendMessageOnFailure>
<BindingType vt="8">netNamedPipeBinding</BindingType>
<UserName vt="8">Hello</UserName>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<EndpointBehaviorConfiguration vt="8"><behavior name="EndpointBehavior" /></EndpointBehaviorConfiguration>
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>
次のコード フラグメントは、WCF-Custom 受信場所の作成を示しています。
注意事項
この例またはガイダンスでは、接続文字列やユーザー名とパスワードなどの機密情報を参照します。 これらの値をコードにハードコーディングしないでください。また、使用可能な最も安全な認証を使用して機密データを保護してください。 詳しくは、次のドキュメントをご覧ください。
// Use BizTalk Explorer object model to create new WCF-Custom receive location
string server = System.Environment.MachineName;
string database = "BizTalkMgmtDb";
string connectionString = string.Format("Server={0};Database={1};Integrated Security=true", server, database);
string transportConfigData = @"<CustomProps>
<BindingConfiguration vt=""8""><binding name=""netNamedPipeBinding""><security mode=""None"" /></binding></BindingConfiguration>
<BindingType vt=""8"">netNamedPipeBinding</BindingType>
</CustomProps>";
//requires project reference to \Program Files\Microsoft BizTalk Server 2009\Developer Tools\Microsoft.BizTalk.ExplorerOM.dll
BtsCatalogExplorer explorer = new Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer();
explorer.ConnectionString = connectionString;
// Add a new BizTalk application
Application application = explorer.AddNewApplication();
application.Name = "SampleBizTalkApplication";
// Save
explorer.SaveChanges();
// Add a new one-way receive port
IReceivePort receivePort = application.AddNewReceivePort(false);
receivePort.Name = "SampleReceivePort";
// Add a new one-way receive location
IReceiveLocation receiveLocation = receivePort.AddNewReceiveLocation();
receiveLocation.Name = "SampleReceiveLocation";
// Find a receive handler for WCF-Custom
int i = 0;
for(i=0; i < explorer.ReceiveHandlers.Count; ++i)
{
if("WCF-Custom" == explorer.ReceiveHandlers[i].TransportType.Name)
break;
}
receiveLocation.ReceiveHandler = explorer.ReceiveHandlers[i];
receiveLocation.Address = "net.pipe://mycomputer/samplePipeName";
receiveLocation.ReceivePipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruReceive"];
receiveLocation.TransportType = explorer.ProtocolTypes["WCF-Custom"];
receiveLocation.TransportTypeData = transportConfigData;
// Save
explorer.SaveChanges();
こちらもご覧ください
WCF 受信アダプターのサービス メタデータを公開するBizTalk ホストとホスト インスタンスを管理するサービス アカウントとパスワードを変更する方法WCF アダプターの証明書をインストールするWCF アダプターのメッセージ本文を指定するWCF-Custom アダプターを構成する関連アプリケーションを作成する方法<behavior>の<endpointBehaviors><bindings><behavior>の<serviceBehaviors>