WCF-Custom 送信ポートを構成する方法
WCF-Custom 送信ポートは、プログラムから、または BizTalk 管理コンソールを使用して構成できます。
構成プロパティ
BizTalk エクスプローラー オブジェクト モデルは、TransportTypeData の読み取り/書き込みプロパティを持つ ITransportInfo という名前の送信ポート用のアダプター固有のインターフェイスを公開します。 このプロパティでは、XML 文字列の名前と値のペアという形式で、WCF-Custom 送信ポートの構成プロパティ バッグを指定できます。
ITransportInfo インターフェイスの TransportTypeData プロパティは必要ありません。 このプロパティを設定しない場合は、アダプタで、次の表に記載されている WCF-Custom 送信ポートの構成の既定値が使用されます。
次の一覧では、BizTalk エクスプローラー オブジェクト モデルで設定できる WCF-Custom 送信ポートの構成プロパティについて説明します。
プロパティ名: ID
種類: XML BLOB
例:
<identity> <userPrincipalName value="username@contoso.com" /> </identity>
説明: この送信ポートで想定されるサービスの ID を指定します。 これらの設定により、この送信ポートでサービスを認証できます。 クライアントとサービス間のハンドシェイク プロセスでは、WCF インフラストラクチャによって、予期されるサービスの ID がこの要素の値に一致します。 Identity プロパティに指定できる値は、セキュリティ構成によって異なります。
既定値は空の文字列です。
プロパティ名: StaticAction
種類:文字列型
説明: 送信メッセージの SOAPAction ヘッダー フィールドを指定します。 このプロパティは、メッセージ コンテキスト プロパティ WCF を使用して設定することもできます 。 パイプラインまたはオーケストレーションのアクション。 この値は、単一アクション形式とアクション マッピング形式の 2 つの異なる方法で指定できます。 など
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 プロパティ。
既定値は空の文字列です。
プロパティ名: BindingType
型: Enum
BindingType プロパティのメンバー名の詳細については、「UI ガイダンスと開発者 API 名前空間リファレンス」の「[WCF-Custom Transport Properties]\(WCF-Custom トランスポート プロパティ\) ダイアログ ボックスの [Binding Type]\(バインドの種類\) プロパティ、[送信]、[バインド] タブ」を参照してください。
説明: この送信ポートで使用するエンドポイントに使用するバインディングの種類を指定します。
カスタム バインドを使用する場合は、 BindingType プロパティをカスタム バインドで構成できます。 カスタム バインドの使用方法の詳細については、「 WCF アダプターで WCF 拡張ポイントを有効にする方法」を参照してください。
プロパティ名: BindingConfiguration
種類: XML BLOB
例:
<binding name="netNamedPipeBinding"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> <security mode="None" /> </binding>
説明: 要素を含む XML 文字列を
<binding>
指定して、Windows Communication Foundation (WCF) によって提供されるさまざまな種類の定義済みバインディングを構成します。 システムで提供されているバインドとカスタム バインドの詳細については、「関連項目」の該当するトピックを参照してください。BizTalk Serverでは、BindingConfiguration プロパティを使用して構成できるバインディング拡張要素のすべての型がサポートされているわけではありません。
既定値は空の文字列です。
プロパティ名: EndpointBehaviorConfiguration
種類: XML BLOB
例:
<behavior name="sampleBehavior"> <callbackTimeouts /> </behavior>
説明: WCF エンドポイントの動作設定を
<behavior>
構成するために、<endpointBehaviors>
要素の 要素を含む XML 文字列を指定します。 要素の<endpointBehaviors>
詳細については、「関連項目」の適切なトピックを参照してください。BizTalk Serverでは、EndpointBehaviorConfiguration プロパティを使用して構成できる動作拡張要素のすべての型がサポートされているわけではありません。
既定値は空の文字列です。
プロパティ名: AffiliateApplicationName
種類:文字列型
説明: Enterprise Single Sign-On (SSO) に使用する関連アプリケーションを指定します。
既定値は空の文字列です。
プロパティ名: UseSSO
型: ブール値
説明: 単一 Sign-On を使用して、移行先サーバーでの認証用のクライアント資格情報を取得するかどうかを指定します。
既定値: False
プロパティ名: UserName
種類:文字列型
説明: UseSSO プロパティが False に設定されている場合に、移行先サーバーでの認証に使用するユーザー名を指定 します。 このプロパティの形式を
domain\user
使用する必要はありません。既定値は空の文字列です。
プロパティ名: パスワード
種類:文字列型
説明: UseSSO プロパティが False に設定されている場合に、移行先サーバーでの認証に使用するパスワードを指定 します。
既定値は空の文字列です。
プロパティ名: OutboundBodyLocation
型: Enum
- UseBodyElement: BizTalk メッセージ本文パーツを使用して、送信メッセージの SOAP Body 要素のコンテンツを作成します。
- UseTemplate: OutboundXMLTemplate プロパティで指定されたテンプレートを使用して、送信メッセージの SOAP Body 要素のコンテンツを作成します。
OutboundBodyLocation プロパティの使用方法の詳細については、「WCF アダプターのメッセージ本文の指定」を参照してください。
説明: 送信 WCF メッセージの SOAP Body 要素のデータ選択を指定します。
既定値: UseBodyElement
プロパティ名: OutboundXMLTemplate
種類:文字列型
OutboundXMLTemplate プロパティの使用方法の詳細については、「WCF アダプターのメッセージ本文の指定」を参照してください。
説明: 送信メッセージの SOAP Body 要素のコンテンツに XML 形式のテンプレートを指定します。 OutboundBodyLocation プロパティが UseTemplate に設定されている場合は、このプロパティが必要です。
既定値は空の文字列です。
プロパティ名: InboundBodyLocation
型: Enum
- UseBodyElement: 受信メッセージの SOAP Body 要素のコンテンツを使用して、BizTalk メッセージ本文パーツを作成します。 Body 要素に複数の子要素がある場合、最初の要素のみが BizTalk メッセージ本文パーツになります。 このプロパティは、送信請求 - 応答のポートに対してのみ有効です。
- UseEnvelope: 受信メッセージの SOAP エンベロープ 全体から BizTalk メッセージ本文部分を作成します。
- UseBodyPath: InboundBodyPathExpression プロパティの本文パス式を使用して、BizTalk メッセージ本文パーツを作成します。 本文パス式は、受信メッセージの SOAP Body 要素の直接の子要素に対して評価されます。 このプロパティは、送信請求 - 応答のポートに対してのみ有効です。
InboundBodyLocation プロパティの使用方法の詳細については、「WCF アダプターのメッセージ本文の指定」を参照してください。
説明: 受信 WCF メッセージの SOAP Body 要素のデータ選択を指定します。
既定値: UseBodyElement
プロパティ名: InboundBodyPathExpression
種類:文字列型
InboundBodyPathExpression プロパティの使用方法の詳細については、「WCF Adapters プロパティ のスキーマとプロパティ」を参照してください。
説明: BizTalk メッセージ本文パーツの作成に使用される受信メッセージの特定の部分を識別する本文パス式を指定します。 この本文パス式は、受信メッセージの SOAP 本文 ノードの直接の子要素に対して評価されます。 このボディ パス式で複数のノードが返される場合は、最初のノードのみが BizTalk メッセージのボディ部に対して選択されます。 このプロパティは、 InboundBodyLocation プロパティが UseBodyPath に設定されている場合に必要です。 このプロパティは、送信請求 - 応答のポートに対してのみ有効です。
既定値は空の文字列です。
プロパティ名: InboundNodeEncoding
型: Enum
- XML
- Base64: Base64 エンコード
- 16 進数: 16 進数エンコード
- String: テキスト エンコード。UTF-8
- XML: WCF アダプターは、 InboundBodyPathExpression の本文パス式によって選択されたノードの外部 XML を使用して、BizTalk メッセージ本文を作成します。
説明: InboundBodyPathExpression で指定された本文パスによって識別されるノードのデコードに WCF-Custom 送信アダプターが使用するエンコードの種類を指定します。 このプロパティは、 InboundBodyLocation プロパティが UseBodyPath に設定されている場合に必要です。 このプロパティは、送信請求 - 応答のポートに対してのみ有効です。
既定値: XML
プロパティ名: PropagateFaultMessage
型: ブール値
- True: 送信処理に失敗したメッセージをサブスクライブ アプリケーション (別の受信ポートやオーケストレーション スケジュールなど) にルーティングします。
- False: 失敗したメッセージを中断し、否定受信確認 (NACK) を生成します。
説明: 送信処理で失敗したメッセージをルーティングするか中断するかを指定します。
このプロパティは、送信請求 - 応答のポートに対してのみ有効です。
既定値: True
プロパティ名: 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"/> </message> </security> </binding> </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"> </issuer> </message> </security> </binding> </wsFederationHttpBinding> <wsHttpBinding> <binding name="northwindBinding"> <security mode="Message"> <message clientCredentialType="Certificate" /> </security> </binding> </wsHttpBinding> </bindings> </ReferencedBindings>
ReferencedBinding プロパティには、BindingConfiguration プロパティで使用されるバインド構成を含めてはいけません。
説明: wsFederationHttpBinding および customBinding の要素の
<issuer>
bindingConfiguration 属性によって参照されるバインド構成を指定します。これは、セキュリティ トークンを発行するセキュリティ トークン サービス (STS) を示します。 要素の<issuer>
詳細については、「 WCF 構成スキーマ:<issuer>
」を参照してください。wsFederationHttpBinding および customBinding の要素を含む
<issuer>
バインディング情報は、WCF-Custom および WCF-CustomIsolated アダプターの BindingConfiguration プロパティを使用して構成できます。 このプロパティの参照されるバインド構成はすべて、 要素の形式で配置する<bindings>
必要があります。このプロパティは、[トランスポート のプロパティ] ダイアログ ボックスの [ バインド ] タブでは構成できません。 このプロパティは、WCF-Custom アダプターと WCF-CustomIsolated アダプターのトランスポート プロパティ ダイアログ ボックスの [ インポート/エクスポート ] タブからインポートおよびエクスポートできます。
要素の bindingConfiguration 属性は、
<issuer>
このプロパティの有効なバインド名を参照する必要があります。参照されるバインディング構成の 要素は
<issuer>
、この参照チェーンが循環依存関係を作成しない場合に、このプロパティの別のバインド構成を参照することもできます。既定値は空の文字列です。
BizTalk 管理コンソールを使用して WCF-Custom 送信ポートを構成する
BizTalk 管理コンソールで、WCF-Custom 送信ポート アダプタの変数を設定できます。 プロパティが送信ポートに設定されていない場合は、上の表に記載されている WCF-Custom 送信ポートの構成の既定値が使用されます。
WCF-Custom 送信ポートの変数を構成する
WCF-Custom アダプタを構成するときにカスタム バインド要素、カスタム動作要素、カスタム チャネル コンポーネントなどの WCF の機能拡張ポイントを使用する場合は、機能拡張ポイントを実装するアセンブリおよびすべての依存アセンブリを、BizTalk 処理コンピュータ (ランタイム コンピュータ) と管理コンピュータの両方のグローバル アセンブリ キャッシュに追加する必要があります。 さらに、拡張コンポーネントを machine.config ファイルに登録する必要があります。 WCF カスタム アダプターで WCF 拡張ポイントを使用する方法の詳細については、「WCF アダプターで WCF 拡張ポイントを有効にする方法」を参照してください。
BizTalk 管理コンソールで、新しい送信ポートを作成するか、既存の送信ポートをダブルクリックして変更します。 詳細については、「 送信ポートを作成する方法」を参照してください。 すべての送信ポート オプションを構成し、UI ガイダンスと開発者 API 名前空間リファレンスの [全般] タブの [トランスポート] セクションの [種類] オプションに WCF-Custom を指定します。
[ 全般 ] タブの [ トランスポート ] セクションで、[種類] の横にある [構成 ] ボタンをクリック します。
[ WCF-Custom Transport Properties ] ダイアログ ボックスの [ 全般 ] タブで、WCF-Custom 送信ポートのエンドポイント アドレス、サービス ID、 および SOAPAction ヘッダーを構成します。 [WCF-Custom Transport Properties]\(WCF カスタム トランスポート プロパティ\) ダイアログ ボックスの [全般] タブの詳細については、「UI ガイダンスと開発者 API 名前空間リファレンス」の「WCF-Custom トランスポート プロパティ] ダイアログ ボックスの [送信]、[全般] タブ」を参照してください。
[ WCF-Custom Transport Properties]\(WCF カスタム トランスポートのプロパティ \) ダイアログ ボックスの [ バインド ] タブで、WCF のさまざまな種類の定義済みバインディングまたはカスタム バインディングを構成します。 [WCF-Custom Transport Properties]\(WCF カスタム トランスポート プロパティ\) ダイアログ ボックスの [バインド] タブの詳細については、UI ガイダンスと開発者 API 名前空間リファレンスの「WCF-Custom トランスポート プロパティ] ダイアログ ボックスの [送信]、[バインド] タブ」を参照してください。
[ WCF-Custom Transport Properties ] ダイアログ ボックスの [ 動作 ] タブで、この送信ポートのエンドポイントの動作を構成します。 エンドポイントの動作は、サービスまたはクライアントの機能を変更または拡張する動作拡張要素のセットです。 [WCF-Custom Transport Properties]\(WCF カスタム トランスポート プロパティ\) ダイアログ ボックスの [動作] タブの詳細については、UI ガイダンスと開発者 API 名前空間リファレンスの「WCF-Custom トランスポート プロパティ] ダイアログ ボックスの [送信]、[動作] タブ」を参照してください。
[ WCF-Custom Transport Properties ] ダイアログ ボックスの [ 資格情報 ] タブで、メッセージの送信時に使用する資格情報を指定します。 [WCF-Custom Transport Properties]\(WCF カスタム トランスポート プロパティ\) ダイアログ ボックスの [Credentials]\(資格情報\) タブの詳細については、「UI ガイダンスと開発者 API 名前空間リファレンス」の「WCF-Custom Transport Properties]\(WCF-Custom トランスポート プロパティ\) ダイアログ ボックスの [Send, Credentials]\(資格情報の送信\) タブ」を参照してください。
[ WCF-Custom Transport Properties ] ダイアログ ボックスの [ メッセージ ] タブで、SOAP Body 要素のデータ選択を指定します。 [WCF-Custom Transport Properties]\(WCF カスタム トランスポート プロパティ\) ダイアログ ボックスの [メッセージ] タブの詳細については、UI ガイダンスと開発者 API 名前空間リファレンスの「WCF-Custom Transport Properties]\(WCF-Custom トランスポート プロパティ\) ダイアログ ボックスの [送信]、[メッセージ] タブ」を参照してください。
[WCF-Custom Transport Properties] ダイアログ ボックスの [インポート/エクスポート] タブで、[全般] タブの [アドレス (URI)] プロパティと [エンドポイント ID] プロパティ、[バインド] タブのバインド情報、およびこの送信ポートの [動作] タブでのエンドポイントの動作をインポートおよびエクスポートします。 [WCF-Custom Transport Properties]\(WCF カスタム トランスポート プロパティ\) ダイアログ ボックスの [インポート/エクスポート] タブの詳細については、UI ガイダンスおよび開発者 API 名前空間リファレンスの「WCF-Custom トランスポート プロパティ] ダイアログ ボックスの [送信]、[インポート]、[エクスポート] タブ」を参照してください。
WCF-Custom 送信ポートをプログラムで構成する
次の形式を使用してプロパティを設定できます。
<CustomProps>
<OutboundXmlTemplate vt="8"><bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="xml"/></OutboundXmlTemplate>
<InboundBodyPathExpression vt="8" />
<EndpointBehaviorConfiguration vt="8"><behavior name="sampleBehavior"><callbackTimeouts /></behavior></EndpointBehaviorConfiguration>
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
<StaticAction vt="8">http://www.northwindtraders.com/Service/Operation</StaticAction>
<BindingConfiguration vt="8"><binding name="NetNamedPipeOrderProcessService.OrderProcessServieEndpoint"><readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /><security mode="None" /></binding></BindingConfiguration>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<UseSSO vt="11">0</UseSSO>
<AffiliateApplicationName vt="8" />
<BindingType vt="8">netNamedPipeBinding</BindingType>
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<UserName vt="8" />
<PropagateFaultMessage vt="11">-1</PropagateFaultMessage>
</CustomProps>
次のコードは、WCF-Custom 送信ポートの作成方法を示しています。
// Use BizTalk Explorer object model to create new WCF-Custom send port.
string server = System.Environment.MachineName;
string database = "BizTalkMgmtDb";
string connectionString = string.Format("Server={0};Database={1};Integrated Security=true", server, database);
string transportConfigData = @"<CustomProps>
<StaticAction vt=""8"">http://www.northwindtraders.com/Service/Operation</StaticAction>
<EndpointBehaviorConfiguration vt=""8""><behavior name=""sampleBehavior""><callbackTimeouts /></behavior></EndpointBehaviorConfiguration>
<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 static one-way send port
SendPort sendPort = application.AddNewSendPort(false, false);
sendPort.Name = "SampleSendPort";
sendPort.PrimaryTransport.TransportType = explorer.ProtocolTypes["WCF-Custom"];
sendPort.PrimaryTransport.Address = "net.pipe://mycomputer/private/samplequeue";
sendPort.PrimaryTransport.TransportTypeData = transportConfigData; // propertyData; // need to change
sendPort.SendPipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruTransmit"];
// Save
explorer.SaveChanges();
参照
WCF アダプターのプロパティ スキーマとプロパティWCF アダプターのメッセージ本文を指定する WCF アダプターの証明書をインストールする WCF アダプターの動的送信ポートを構成する WCF-Custom アダプターを構成するコンテキスト プロパティ<のバインド><の<動作> endpointBehaviors>