WCF-NetTcp 送信ポートの構成
WCF-NetTcp 送信ポートは、プログラムまたは BizTalk 管理コンソールを使用して構成できます。
構成プロパティ
BizTalk エクスプローラー オブジェクト モデルは、TransportTypeData の読み取り/書き込みプロパティを持つ ITransportInfo という名前の送信ポート用のアダプター固有のインターフェイスを公開します。 このプロパティでは、名前と値のペアの XML 文字列の形式で WCF-NetTcp 送信ポートの構成プロパティ バッグを指定できます。
ITransportInfo インターフェイスの TransportTypeData プロパティは必要ありません。 このプロパティを設定しない場合は、アダプタで、次の表に記載されている WCF-NetTcp 送信ポートの構成の既定値が使用されます。
次の表に、BizTalk エクスプローラ オブジェクト モデルで WCF-NetTcp 送信ポート用に設定できる構成プロパティを示します。
プロパティ名 | Type | 説明 |
---|---|---|
ID | XML BLOB(例:<identity> <userPrincipalName value="username@contoso.com"/> </identity> |
この送信ポートが必要とするサービスの ID を指定します。 これらの設定により、この送信ポートでサービスを認証できます。 クライアントとサービスの間のハンドシェイク プロセスでは、Windows Communication Foundation (WCF) インフラストラクチャによって、この要素の値と予期されるサービスの ID が照合されます。 既定値は空の文字列です。 |
StaticAction | String | 送信メッセージの 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 プロパティ。 既定値は空の文字列です。 |
OpenTimeout | System.TimeSpan | チャネルを開く操作が完了するまでの間隔を示す期間値を指定します。 既定値:00:01:00 |
SendTimeout | System.TimeSpan | 送信操作が完了するまでの間隔を示す期間値を指定します。 送信請求 - 応答の送信ポートを使用する場合は、サービスから大きいメッセージが返される場合でも、この値には対話処理がすべて完了するまでの時間を指定します。 既定値:00:01:00 |
CloseTimeout | System.TimeSpan | チャネルを閉じる操作が完了するまでの間隔を示す期間値を指定します。 既定値:00:01:00 |
MaxReceivedMessageSize | 整数型 | 有線ネットワーク上で受信できる、ヘッダーを含むメッセージの最大サイズをバイト単位で指定します。 メッセージのサイズは、各メッセージに割り当てられているメモリの量に制限されます。 このプロパティを使用して、サービス拒否 (DoS) 攻撃にさらされる危険性を制限できます。 WCF-NetTcp アダプターは、バッファー転送モードの NetTcpBinding クラスを利用してエンドポイントと通信します。 バッファーされたトランスポート モードの場合、 NetTcpBinding.MaxBufferSize プロパティは常にこのプロパティの値と等しくなります。 既定値:65536 |
EnableTransaction | Boolean | TransactionProtocol プロパティで指定されたトランザクション プロトコルを使用して、メッセージを宛先サービスに送信し、トランザクション コンテキストで MessageBox データベースから削除するかどうかを指定します。 既定値: False |
TransactionProtocol | 列挙型 - OleTransaction - WS-AtomicTransaction |
このバインドで使用するトランザクション プロトコルを指定します。 既定値: OleTransaction |
SecurityMode | 列挙型 - なし - メッセージ - トランスポート - TransportWithMessageCredential SecurityMode プロパティのメンバー名の詳細については、「UI ガイダンスと開発者 API 名前空間リファレンス」の「WCF-NetTcp トランスポート プロパティ] ダイアログ ボックスの [セキュリティ モード] プロパティ、送信、セキュリティ タブを参照してください。 |
使用するセキュリティの種類を指定します。 既定値: トランスポート |
TransportClientCredentialType | 列挙型 - なし - Windows - 証明 書 TransportClientCredentialType プロパティのメンバー名の詳細については、「UI ガイダンスと開発者 API 名前空間リファレンス」の「WCF-NetTcp トランスポート プロパティ] ダイアログ ボックスのトランスポート クライアント資格情報の種類プロパティの送信、セキュリティ」タブを参照してください。 |
送信ポート認証の実行時に使用する資格情報の種類を指定します。 既定値: Windows |
TransportProtectionLevel | 列挙型 - なし - 保護なし。 - 署名 - メッセージは署名されます。 - EncryptAndSign - メッセージは暗号化され、署名されます。 |
TCP トランスポートのレベルでのセキュリティを指定します。 メッセージに署名を付けることで、メッセージの転送中に第三者によって改ざんされるリスクが軽減されます。 暗号化によって、トランスポート中にデータ レベルのプライバシーが提供されます。 既定値: EncryptAndSign |
MessageClientCredentialType | 列挙型 - なし - Windows - 名 - 証明 書 MessageClientCredentialType プロパティのメンバー名の詳細については、「UI ガイダンスと開発者 API 名前空間リファレンス」の「WCF-NetTcp トランスポートのプロパティ] ダイアログ ボックスの [送信]、[セキュリティ] タブのメッセージ クライアント資格情報の種類プロパティ」を参照してください。 |
メッセージ ベースのセキュリティを使用してクライアント認証を実行するときに使用する、資格情報の種類を指定します。 既定値: Windows |
AlgorithmSuite | 列挙型 AlgorithmSuite プロパティのメンバー名の詳細については、「UI ガイダンスと開発者 API 名前空間リファレンス」の「WCF-NetTcp トランスポート プロパティ] ダイアログ ボックスの [アルゴリズム スイート] プロパティ、送信、セキュリティ タブ」を参照してください。 |
メッセージの暗号化とキー ラップのアルゴリズムを指定します。 これらのアルゴリズムは、セキュリティ ポリシー言語 (WS-SecurityPolicy) 仕様で指定されたアルゴリズムにマップされます。 既定値: Basic256 |
ClientCertificate | String | この送信ポートをサービスに対して認証する際に使用する X.509 証明書の拇印を指定します。 ClientCredentialsType プロパティが Certificate に設定されている場合、このプロパティは必須です。 このプロパティに使用する証明書は、現在のユーザーの場所にある My ストアにインストールする必要があります。 既定値は空の文字列です。 |
AffiliateApplicationName | String | エンタープライズ シングル サインオン (SSO) に使用する関連アプリケーションを指定します。 既定値は空の文字列です。 |
UseSSO | Boolean | 接続先のサーバーでの認証でクライアントの資格情報を取得する際に、シングル サインオンを使用するかどうかを指定します。 既定値: False |
UserName | String | UseSSO プロパティが False に設定されている場合に、移行先サーバーでの認証に使用するユーザー名を指定します。 このプロパティでは domain\user 形式は使用できません。 既定値は空の文字列です。 |
パスワード | String | UseSSO プロパティが False に設定されている場合に、移行先サーバーでの認証に使用するパスワードを指定します。 既定値は空の文字列です。 |
OutboundBodyLocation | 列挙型 - UseBodyElement - BizTalk メッセージ本文パーツを使用して、送信メッセージの SOAP Body 要素のコンテンツを作成します。 - UseTemplate - OutboundXMLTemplate プロパティに指定されたテンプレートを使用して、送信メッセージの SOAP Body 要素のコンテンツを作成します。 OutboundBodyLocation プロパティの使用方法の詳細については、「WCF アダプターのメッセージ本文の指定」を参照してください。 |
送信 WCF メッセージの SOAP Body 要素のデータ選択を指定します。 既定値: UseBodyElement |
OutboundXMLTemplate | String 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 | String InboundBodyPathExpression プロパティの使用方法の詳細については、「WCF Adapters プロパティ のスキーマとプロパティ」を参照してください。 |
BizTalk メッセージのボディ部を作成するために使用する受信メッセージの特定の部分を示すボディ パス式を指定します。 この本文パス式は、受信メッセージの SOAP 本文 ノードの直接の子要素に対して評価されます。 このボディ パス式で複数のノードが返される場合は、最初のノードのみが BizTalk メッセージのボディ部に対して選択されます。 このプロパティは、 InboundBodyLocation プロパティが UseBodyPath に設定されている場合に必要です。 このプロパティは、送信請求 - 応答のポートに対してのみ有効です。 既定値は空の文字列です。 |
InboundNodeEncoding | 列挙型 - Xml - Base64 - Base64 エンコード。 - 16 進数 - 16 進エンコード。 - String - テキスト エンコード - UTF-8。 - XML - WCF アダプターは、 InboundBodyPathExpression の本文パス式によって選択されたノードの外部 XML を使用して BizTalk メッセージ本文を作成します。 |
WCF-NetTcp 送信アダプターが InboundBodyPathExpression で指定された XPath によって識別されるノードのデコードに使用するエンコードの種類を指定します。 このプロパティは、 InboundBodyLocation プロパティが UseBodyPath に設定されている場合に必要です。 このプロパティは、送信請求 - 応答のポートに対してのみ有効です。 既定値: XML |
PropagateFaultMessage | Boolean - True - 送信処理に失敗したメッセージをサブスクライブ アプリケーション (別の受信ポートやオーケストレーション スケジュールなど) にルーティングします。 - False - 失敗したメッセージを中断し、否定受信確認 (NACK) を生成します。 |
送信処理に失敗したメッセージをルーティングまたは中断するかどうかを指定します。 このプロパティは、送信請求 - 応答のポートに対してのみ有効です。 既定値: True |
BizTalk 管理コンソールを使用して WCF-NetTcp 送信ポートを構成する方法
BizTalk 管理コンソールで、WCF-NetTcp 送信ポート アダプタの変数を設定できます。 プロパティが送信ポートに設定されていない場合は、前の表に記載されている WCF-NetTcp 送信ポートの構成の既定値が使用されます。
WCF-NetTcp 送信ポートの変数を構成する
BizTalk 管理コンソールで、新しい送信ポートを作成するか、既存の送信ポートをダブルクリックして変更します。 詳細については、「 送信ポートを作成する方法」を参照してください。 すべての送信ポート オプションを構成し、[全般] タブの [トランスポート] セクションの [種類] オプションに WCF-NetTcp を指定します。
[ 全般 ] タブの [ トランスポート ] セクションで、[種類] の横にある [構成 ] ボタンをクリック します。
[ WCF-NetTcp トランスポートのプロパティ ] ダイアログ ボックスの [ 全般 ] タブで、WCF-NetTcp 送信ポートのエンドポイント アドレス、サービス ID、 および SOAPAction ヘッダーを構成します。 [WCF-NetTcp トランスポートのプロパティ] ダイアログ ボックスの [全般] タブの詳細については、UI ガイダンスと開発者 API 名前空間リファレンスの「WCF-NetTcp トランスポートのプロパティ] ダイアログ ボックスの [送信]、[全般] タブを参照してください。
[ WCF-NetTcp トランスポートのプロパティ ] ダイアログ ボックスの [ バインド ] タブで、タイムアウトとトランザクションのプロパティを構成します。 [WCF-NetTcp トランスポートのプロパティ] ダイアログ ボックスの [バインド] タブの詳細については、UI ガイダンスと開発者 API 名前空間リファレンスの「WCF-NetTcp トランスポート プロパティ] ダイアログ ボックスの [送信]、[バインド] タブ」を参照してください。
[ WCF-NetTcp トランスポートのプロパティ ] ダイアログ ボックスの [ セキュリティ ] タブで、WCF-NetTcp 送信ポートのセキュリティ機能を定義します。 [WCF-NetTcp トランスポートのプロパティ] ダイアログ ボックスの [セキュリティ] タブの詳細については、UI ガイダンスと開発者 API 名前空間リファレンスの「WCF-NetTcp トランスポートのプロパティ] ダイアログ ボックスの [送信]、[セキュリティ] タブ」を参照してください。
[ WCF-NetTcp トランスポートのプロパティ ] ダイアログ ボックスの [ メッセージ ] タブで、SOAP Body 要素のデータ選択を指定します。 [WCF-NetTcp トランスポートのプロパティ] ダイアログ ボックスの [メッセージ] タブの詳細については、「UI ガイダンスと開発者 API 名前空間リファレンス」の「WCF-NetTcp トランスポートのプロパティ] ダイアログ ボックスの [送信]、[メッセージ] タブ」を参照してください。
WCF-NetTcp 送信ポートをプログラムで構成する
次の形式を使用してプロパティを設定できます。
<CustomProps>
<UseSSO vt="11">0</UseSSO>
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<InboundBodyPathExpression vt="8" />
<MessageClientCredentialType vt="8">Windows</MessageClientCredentialType>
<SendTimeout vt="8">00:01:00</SendTimeout>
<OutboundXmlTemplate vt="8"><bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="xml"/></OutboundXmlTemplate>
<OpenTimeout vt="8">00:01:00</OpenTimeout>
<AlgorithmSuite vt="8">Basic256</AlgorithmSuite>
<SecurityMode vt="8">Transport</SecurityMode>
<TransportClientCredentialType vt="8">Windows</TransportClientCredentialType>
<ClientCertificate vt="8" />
<TransactionProtocol vt="8">OleTransactions</TransactionProtocol>
<MaxReceivedMessageSize vt="3">2097152</MaxReceivedMessageSize>
<StaticAction vt="8">http://www.northwindtraders.com/Service/Operation</StaticAction>
<TransportProtectionLevel vt="8">EncryptAndSign</TransportProtectionLevel>
<CloseTimeout vt="8">00:01:00</CloseTimeout>
<EnableTransaction vt="11">0</EnableTransaction>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<PropagateFaultMessage vt="11">-1</PropagateFaultMessage>
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>
次のコードは、WCF-NetTcp 送信ポートの作成方法を示しています。
// Use BizTalk Explorer object model to create new WCF-NetTcp 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>
<OpenTimeout vt=""8"">00:01:00</OpenTimeout>
</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-NetTcp"];
sendPort.PrimaryTransport.Address = "net.tcp://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-NetTcp アダプターを構成するWCF アダプターの証明書をインストールする WCF アダプターのメッセージ本文を指定するプロパティ