WCF-Custom 受信場所を構成する方法
WCF-Custom 受信場所は、プログラムから、または BizTalk 管理コンソールを使用して構成できます。
構成プロパティ
BizTalk エクスプローラー オブジェクト モデルにより、プログラムから受信場所を作成および構成することができます。 BizTalk エクスプローラー オブジェクト モデルは、TransportTypeData の読み取り/書き込みプロパティを持つIReceiveLocation 受信場所構成インターフェイスを公開します。 このプロパティでは、名前と値を組み合わせた XML 文字列の形式で WCF-Custom 受信場所の構成プロパティ バッグを指定できます。 BizTalk エクスプローラー オブジェクト モデルでこのプロパティを設定するには、IReceiveLocation インターフェイスの InboundTransportLocation プロパティを設定する必要があります。
IReceiveLocation インターフェイスの TransportTypeData プロパティを設定する必要はありません。 このプロパティを設定しない場合、WCF-Custom アダプタでは、次の表に記載されている WCF-Custom 受信場所の構成の既定値が使用されます。
次の表に、BizTalk エクスプローラのオブジェクト モデルで WCF-Custom 受信場所用に設定できる構成プロパティを示します。
プロパティ名 | Type | 説明 |
---|---|---|
ID | XML Blob 例: <identity> <userPrincipalName value="username@contoso.com" /> </Id> |
この受信場所が提供するサービスの ID を指定します。 Identity プロパティに指定できる値は、セキュリティ構成によって異なります。 これらの設定により、クライアントはこの受信場所を認証できます。 クライアントとサービスの間のハンドシェイク プロセスでは、Windows Communication Foundation (WCF) インフラストラクチャによって、この要素の値と予期されるサービスの ID が照合されます。 既定値は空の文字列です。 |
BindingType | 列挙型 - 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> |
Windows Communication Foundation (WCF) によって提供されるさまざまな種類の定義済みバインディング>を構成するには、バインド要素を含む XML 文字列<を指定します。 システム提供のバインドとカスタム バインドの詳細については、「関連項目」の適切なトピックを参照してください。 注: 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> |
WCF エンドポイントの動作>設定を構成するには、<endpointBehaviors> 要素の< behavior 要素を使用して XML 文字列を指定します。 endpointBehaviors> 要素の<詳細については、「関連項目」の適切なトピックを参照してください。 注: BizTalk Serverでは、EndpointBehaviorConfiguration プロパティを使用して構成できる動作拡張要素のすべての種類がサポートされているわけではありません。 既定値は空の文字列です。 |
CredentialType | 列挙型 - なし: この受信場所が外部サービスをポーリングするために要請メッセージを送信する場合、またはこの受信場所が外部サービスをポーリングする必要がない場合は、資格情報を使用しないでください。 - IssueTicket: Enterprise Single Sign-On (SSO) を使用して、SSO チケットを発行するためのクライアント資格情報を取得します。 このオプションを使用する場合は、セキュリティ モードを使用して、この受信場所が SSO チケットを発行するためのユーザー アカウントを借用できるようにする必要があります。 - UserAccount: この受信場所から外部サービスをポーリングするための要請メッセージが送信されるときに 、Username プロパティと Password プロパティで指定された資格情報を使用します。 - GetCredentials: この受信場所が外部サービスをポーリングするために要請メッセージを送信するときに、 AffiliateApplicationName プロパティで指定された SSO 関連アプリケーションを使用します。 |
外部サービスをポーリングする場合に、この受信場所で使用する資格情報を指定します。 既定値: なし |
UserName | String | 外部サービスをポーリングして応答メッセージを取得する場合に、この受信場所で使用するユーザー名を指定します。 このプロパティは、 CredentialType プロパティが UserAccount に設定されている場合に必要です。 既定値は空の文字列です。 |
パスワード | String | 外部サービスをポーリングして応答メッセージを取得する場合に、この受信場所で使用するパスワードを指定します。 このプロパティは、 CredentialType プロパティが UserAccount に設定されている場合に必要です。 既定値は空の文字列です。 |
AffiliateApplicationName | String | この受信場所が外部サービスをポーリングするために送信請求メッセージを送信する際に、使用する外部資格情報を返す SSO 関連アプリケーションを指定します。 指定された SSO 関連アプリケーションでは、この受信場所が実行される Windows アカウントと外部サービスのアカウントとの間のマッピングが作成されている必要があります。 このプロパティは、 CredentialType プロパティが GetCredentials に設定されている場合に必要です。 既定値は空の文字列です。 |
OrderedProcessing | Boolean | メッセージの処理時にメッセージの順序を保持するかどうかを指定します (NetMsmq バインドで使用)。 既定値: False |
InboundBodyLocation | 列挙型 - UseBodyElement - 受信メッセージの SOAP Body 要素の内容を使用して、BizTalk メッセージ本文パーツを作成します。 Body 要素に複数の子要素がある場合、最初の要素のみが BizTalk メッセージ本文パーツになります。 - UseEnvelope - 受信メッセージの SOAP エンベロープ 全体から BizTalk メッセージ本文部分を作成します。 - UseBodyPath - InboundBodyPathExpression プロパティの本文パス式を使用して、BizTalk メッセージ本文パーツを作成します。 本文パス式は、受信メッセージの SOAP Body 要素の直接の子要素に対して評価されます。 このプロパティは、送信請求 - 応答のポートに対してのみ有効です。 InboundBodyLocation プロパティの使用方法の詳細については、「WCF アダプターのメッセージ本文の指定」を参照してください。 |
受信 WCF メッセージの SOAP Body 要素のデータ選択を指定します。 既定値: UseBodyElement |
InboundBodyPathExpression | String InboundBodyPathExpression プロパティの使用方法の詳細については、「WCF アダプター のプロパティ スキーマとプロパティ」を参照してください。 |
BizTalk メッセージのボディ部を作成するために使用する受信メッセージの特定の部分を示すボディ パス式を指定します。 この本文パス式は、受信メッセージの SOAP Body ノードの直接の子要素に対して評価されます。 このボディ パス式で複数のノードが返される場合は、最初のノードのみが BizTalk メッセージのボディ部に対して選択されます。 InboundBodyLocation プロパティが UseBodyPath に設定されている場合、このプロパティは必須です。 既定値は空の文字列です。 |
InboundNodeEncoding | 列挙型 - Base64 - Base64 エンコード。 - 16 進数 - 16 進エンコード。 - String - テキスト エンコード - UTF-8。 - XML - WCF アダプターは、 InboundBodyPathExpression の本文パス式によって選択されたノードの外部 XML を使用して BizTalk メッセージ本文を作成します。 |
inboundBodyPathExpression で指定された本文パス式で識別されるノードをデコードするために、WCF-Custom 受信アダプターが使用するエンコードの種類を指定します。 InboundBodyLocation プロパティが UseBodyPath に設定されている場合、このプロパティは必須です。 既定値: XML |
OutboundBodyLocation | 列挙型 - UseBodyElement - BizTalk メッセージ本文パーツを使用して、送信応答メッセージの SOAP Body 要素のコンテンツを作成します。 - UseTemplate - OutboundXMLTemplate プロパティで指定されたテンプレートを使用して、送信応答メッセージの SOAP Body 要素のコンテンツを作成します。 OutboundBodyLocation プロパティの使用方法の詳細については、「WCF アダプターのメッセージ本文の指定」を参照してください。 |
送信 WCF メッセージの SOAP Body 要素のデータ選択を指定します。 このプロパティは、要求 - 応答の受信場所に対してのみ有効です。 既定値: UseBodyElement |
OutboundXMLTemplate | String OutboundXMLTemplate プロパティの使用方法の詳細については、「WCF アダプターのメッセージ本文の指定」を参照してください。 |
送信応答メッセージの SOAP Body 要素の内容に XML 形式のテンプレートを指定します。 OutboundBodyLocation プロパティが UseTemplate に設定されている場合は、このプロパティが必要です。 このプロパティは、要求 - 応答の受信場所に対してのみ有効です。 既定値は空の文字列です。 |
DisableLocationOnFailure | Boolean | 受信パイプラインまたはルーティングの障害によって受信処理に失敗した受信場所を無効にするかどうかを指定します。 既定値: False |
SuspendMessageOnFailure | Boolean | 受信パイプラインまたはルーティングの障害によって受信処理に失敗した要求メッセージを保留するかどうかを指定します。 既定値: True |
IncludeExceptionDetailInFaults | Boolean | デバッグの目的でクライアントに返される SOAP エラーの詳細にマネージド例外情報を含めるかどうかを指定します。 既定値: False |
ReferencedBindings | XML Blob 例: <BindingConfiguration vt="8"> <wsFederationHttpBinding> <binding name="sampleBinding"> <security mode="Message"> <message issuedKeyType="AsymmetricKey"> <issuer address="http://www.contoso.com/samplests" binding="wsFederationHttpBinding" bindingConfiguration="contosoSTSBinding"/> </メッセージ> </セキュリティ> </バインディング> </wsFederationHttpBinding> </BindingConfiguration> <ReferencedBindings vt="8"> <bindings> <wsFederationHttpBinding> <binding name="contosoSTSBinding"> <security mode="Message"> <message negotiateServiceCredential="false"> <issuer address="http://northwind.com/samplests" bindingConfiguration="northwindBinding" binding="wsHttpBinding"> </発行者> </メッセージ> </セキュリティ> </バインディング> </wsFederationHttpBinding> <wsHttpBinding> <binding name="northwindBinding"> <security mode="Message"> <message clientCredentialType="Certificate" /> </セキュリティ> </バインディング> </wsHttpBinding> </バインド> </ReferencedBindings>注:ReferencedBinding プロパティには、 BindingConfiguration プロパティで使用されるバインド構成を含めてはいけません。 |
wsFederationHttpBinding および customBinding の issuer> 要素の<bindingConfiguration 属性によって参照されるバインド構成を指定します。これは、セキュリティ トークンを発行するセキュリティ トークン サービス (STS) を示します。 issuer> 要素の<詳細については、 の「<issuer>」https://go.microsoft.com/fwlink/?LinkId=83476を参照してください。 wsFederationHttpBinding および customBinding の issuer> 要素を含む<バインディング情報は、WCF-Custom の BindingConfiguration プロパティと WCF-CustomIsolated アダプターを使用して構成できます。 このプロパティの参照されるバインド構成はすべて、bindings> 要素の形式で配置する<必要があります。 メモ: このプロパティは、[トランスポートのプロパティ] ダイアログ ボックスの [ バインド ] タブでは構成できません。 このプロパティをインポートおよびエクスポートするには、WCF-Custom アダプターと WCF-CustomIsolated アダプターの [トランスポート プロパティ] ダイアログ ボックスの [ インポート/エクスポート ] タブを使用します。 メモ:issuer> 要素の bindingConfiguration 属性は、<このプロパティの有効なバインド名を参照する必要があります。 メモ:参照されるバインド構成の issuer> 要素は<、この参照チェーンが循環依存関係を作成しない場合は、 プロパティで別のバインド構成を参照することもできます。 既定値は空の文字列です。 |
BizTalk 管理コンソールを使用して WCF-Custom 受信場所を構成する
WCF-Custom 受信場所のアダプタ変数は、BizTalk 管理コンソールで設定できます。 プロパティが受信場所に設定されていない場合は、BizTalk 管理コンソールで設定された既定の受信ハンドラーの値が使用されます。
Note
次の手順を実行する前に、受信ポートを追加する必要があります。 詳細については、「 受信ポートを作成する方法」を参照してください。
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 Transport Properties]\(WCF カスタム トランスポート プロパティ\) ダイアログ ボックスの [全般] タブの詳細については、UI ガイダンスと開発者 API 名前空間リファレンスの「WCF-Custom Transport Properties]\(WCF-Custom トランスポート プロパティ\) ダイアログ ボックス、[Receive]\(受信\)、[General]\(全般\) タブ」を参照してください。
[ WCF-Custom Transport Properties]\(WCF-Custom トランスポートのプロパティ \) ダイアログ ボックスの [ バインド ] タブで、WCF のさまざまな種類の定義済みバインディングまたはカスタム バインドを構成します。 [WCF-Custom Transport Properties]\(WCF カスタム トランスポート プロパティ\) ダイアログ ボックスの [バインド] タブの詳細については、UI ガイダンスと開発者 API 名前空間リファレンスの「WCF-Custom Transport Properties]\(WCF-Custom トランスポート プロパティ\) ダイアログ ボックスの [Receive, Binding]\(受信\) タブ」を参照してください。
[ WCF-Custom トランスポートのプロパティ ] ダイアログ ボックスの [ 動作 ] タブで、この受信場所のエンドポイントとサービスの動作を構成します。 エンドポイント動作とは、サービスまたはクライアント機能を変更または拡張する動作拡張機能の要素のセットです。 [WCF-Custom Transport Properties]\(WCF-Custom トランスポート プロパティ\) ダイアログ ボックスの [Behavior]\(動作\) タブの詳細については、UI ガイダンスおよび開発者 API 名前空間リファレンスの「WCF-Custom Transport Properties]\(WCF-Custom トランスポート プロパティ\) ダイアログ ボックスの [Receive,Behavior]\(受信\) タブ」を参照してください。
[ WCF-Custom トランスポート プロパティ ] ダイアログ ボックスの [ その他 ] タブで、外部サービスのポーリング時に使用するこの受信場所の資格情報と、この受信場所がメッセージの処理時にメッセージの順序を保持するかどうかを構成します。 [WCF-Custom Transport Properties]\(WCF カスタム トランスポート プロパティ\) ダイアログ ボックスの [その他] タブの詳細については、UI ガイダンスと開発者 API 名前空間リファレンスの「WCF-Custom Transport Properties]\(WCF-Custom トランスポート プロパティ\) ダイアログ ボックス、[Receive]\(受信\)、[Other]\(その他\) タブ」を参照してください。
[ WCF-Custom Transport Properties ] ダイアログ ボックスの [ メッセージ ] タブで、SOAP Body 要素のデータ選択を指定します。 [WCF-Custom Transport Properties]\(WCF カスタム トランスポート プロパティ\) ダイアログ ボックスの [メッセージ] タブの詳細については、UI ガイダンスと開発者 API 名前空間リファレンスの「WCF-Custom トランスポート プロパティ] ダイアログ ボックスの [受信]、[メッセージ] タブ」を参照してください。
[WCF-Custom Transport Properties]\(WCF-Custom トランスポート プロパティ\) ダイアログ ボックスの [インポート/エクスポート] タブで、[全般] タブの [アドレス (URI)] プロパティと [エンドポイント ID] プロパティ、[バインド] タブのバインド情報、およびこの受信場所の [動作] タブのエンドポイント動作をインポートおよびエクスポートします。 [WCF-Custom Transport Properties]\(WCF-Custom トランスポート プロパティ\) ダイアログ ボックスの [インポート/エクスポート] タブの詳細については、UI ガイダンスおよび開発者 API 名前空間リファレンスの「WCF-Custom Transport Properties]\(WCF-Custom トランスポート プロパティ\) ダイアログ ボックスの [受信]、[Import-Export]\(インポート/エクスポート\) タブ」を参照してください。
プログラムで 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アダプターの構成endpointBehaviors>バインド動作の関連アプリケーション<動作>を<作成する方法><><<serviceBehaviors>