WCF-Custom 送信ポートは、プログラムまたは BizTalk 管理コンソールを使用して構成できます。
構成プロパティ
BizTalk Explorer オブジェクト モデルは、TransportTypeData の読み取り/書き込みプロパティを持つ ITransportInfo という名前の送信ポート用のアダプター固有のインターフェイスを公開します。 このプロパティは、XML 文字列の名前と値のペアの形式で WCF-Custom 送信ポート構成プロパティ バッグを受け入れます。
ITransportInfo インターフェイスの TransportTypeData プロパティは必要ありません。 設定されていない場合、アダプターは、次の表に示すように、WCF-Custom 送信ポート構成の既定値を使用します。
次の一覧では、BizTalk Explorer オブジェクト モデルで WCF-Custom 送信ポート用に設定できる構成プロパティについて説明します。
プロパティ名: ID
型: XML ブロブ
例:
<identity> <userPrincipalName value="username@contoso.com" /> </identity>
説明: この送信ポートで想定されるサービスの ID を指定します。 これらの設定により、この送信ポートでサービスを認証できます。 クライアントとサービス間のハンドシェイク プロセスでは、WCF インフラストラクチャによって、想定されるサービスの ID がこの要素の値と一致することが保証されます。 Identity プロパティに指定できる値は、セキュリティ構成によって異なります。
既定値は空の文字列です。
プロパティ名: StaticAction
種類: 文字列
説明: 送信メッセージの SOAPAction ヘッダー フィールドを指定します。 このプロパティは、パイプラインまたはオーケストレーション内でメッセージ コンテキスト プロパティ 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 プロパティを設定できます。
既定値は空の文字列です。
プロパティ名: BindingType
型: 列挙型
BindingType プロパティのメンバー名の詳細については、UI ガイダンスと開発者 API 名前空間リファレンスの [WCF-Custom トランスポート プロパティ] ダイアログ ボックスの [バインドの種類] プロパティの [送信]、[バインド] タブを参照してください。
説明: この送信ポートで使用するエンドポイントに使用するバインディングの種類を指定します。
カスタム バインドを使用する場合は、 BindingType プロパティをカスタム バインドで構成できます。 カスタム バインドの使用方法の詳細については、「 WCF アダプターで WCF 拡張ポイントを有効にする方法」を参照してください。
プロパティ名: BindingConfiguration
型: XML ブロブ
例:
<binding name="netNamedPipeBinding"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> <security mode="None" /> </binding>
説明: windows Communication Foundation (WCF) によって提供されるさまざまな種類の定義済みバインディングを構成するには、
<binding>
要素を含む XML 文字列を指定します。 システム提供のバインディングとカスタム バインドの詳細については、「関連項目」に記載されている適切なトピックを参照してください。BizTalk Server では、 BindingConfiguration プロパティを使用して構成できるバインディング拡張要素のすべての型がサポートされているわけではありません。
既定値は空の文字列です。
プロパティ名: EndpointBehaviorConfiguration
型: XML ブロブ
例:
<behavior name="sampleBehavior"> <callbackTimeouts /> </behavior>
説明: WCF エンドポイントの動作設定を構成するには、
<endpointBehaviors>
要素の<behavior>
要素を含む XML 文字列を指定します。<endpointBehaviors>
要素の詳細については、「関連項目」の該当するトピックを参照してください。BizTalk Server では、 EndpointBehaviorConfiguration プロパティを使用して構成できる動作拡張要素のすべての種類がサポートされているわけではありません。
既定値は空の文字列です。
プロパティ名: AffiliateApplicationName
種類: 文字列
説明: Enterprise Single Sign-On (SSO) に使用する関連アプリケーションを指定します。
既定値は空の文字列です。
プロパティ名: UseSSO
種類 :ブール値
説明: 単一 Sign-On を使用して、移行先サーバーでの認証用のクライアント資格情報を取得するかどうかを指定します。
既定値: False
プロパティ名: UserName
種類: 文字列
説明: UseSSO プロパティが False に設定されている場合に、移行先サーバーでの認証に使用するユーザー名を指定 します。 このプロパティに
___domain\user
形式を使用する必要はありません。既定値は空の文字列です。
プロパティ名: パスワード
種類: 文字列
説明: UseSSO プロパティが False に設定されている場合に、移行先サーバーでの認証に使用するパスワードを指定 します。
既定値は空の文字列です。
プロパティ名: OutboundBodyLocation
型: 列挙型
- UseBodyElement: BizTalk メッセージ本文パーツを使用して、送信メッセージの SOAP 本文 要素のコンテンツを作成します。
- UseTemplate: OutboundXMLTemplate プロパティで指定されたテンプレートを使用して、送信メッセージの SOAP Body 要素のコンテンツを作成します。
OutboundBodyLocation プロパティの使用方法の詳細については、「WCF アダプターのメッセージ本文の指定」を参照してください。
説明: 送信 WCF メッセージの SOAP Body 要素のデータ選択を指定します。
既定値: UseBodyElement
プロパティ名: OutboundXMLTemplate
種類: 文字列
OutboundXMLTemplate プロパティの使用方法の詳細については、「WCF アダプターのメッセージ本文の指定」を参照してください。
説明: 送信メッセージの SOAP Body 要素の内容に XML 形式のテンプレートを指定します。 OutboundBodyLocation プロパティが UseTemplate に設定されている場合は、このプロパティが必要です。
既定値は空の文字列です。
プロパティ名: 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
型: 列挙型
- XML
- Base64: Base64 エンコード
- 16 進数: 16 進エンコード
- 文字列: テキスト エンコード。UTF-8
- XML: WCF アダプターは、 InboundBodyPathExpression の本文パス式によって選択されたノードの外部 XML を使用して BizTalk メッセージ本文を作成します。
説明: WCF-Custom 送信アダプターが InboundBodyPathExpression で指定された本文パスによって識別されるノードのデコードに使用するエンコードの種類を指定します。 InboundBodyLocation プロパティが UseBodyPath に設定されている場合は、このプロパティが必要です。 このプロパティは、要請応答ポートに対してのみ有効です。
既定値: XML
プロパティ名: PropagateFaultMessage
種類 :ブール値
- True: 送信処理に失敗したメッセージをサブスクライブしているアプリケーション (別の受信ポートやオーケストレーション スケジュールなど) にルーティングします。
- False: 失敗したメッセージを中断し、否定受信確認 (NACK) を生成します。
説明: 送信処理で失敗したメッセージをルーティングするか中断するかを指定します。
このプロパティは、要請応答ポートに対してのみ有効です。
既定値: True
プロパティ名: ReferencedBindings
型: XML ブロブ
例:
<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 アダプターのトランスポート プロパティ ダイアログ ボックスの [ インポート/エクスポート ] タブを使用してインポートおよびエクスポートできます。
<issuer>
要素の bindingConfiguration 属性は、このプロパティで有効なバインド名を参照する必要があります。参照されるバインディング構成の
<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 トランスポートのプロパティ] ダイアログ ボックスの [全般] タブで、WCF-Custom 送信ポートのエンドポイント アドレス、サービス ID、および SOAPAction ヘッダーを構成します。 ['全般'] タブの詳細については、[トランスポート プロパティWCF-Custom] ダイアログ ボックスの [送信]、[WCF-Custom トランスポート プロパティ] ダイアログ ボックスの [全般] タブを、「UI ガイダンスと開発者 API 名前空間のリファレンス」で参照してください。
[ 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>
<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 アダプターのコンテキスト プロパティ<バインド><behavior><endpointBehaviors>