次の方法で共有


WCF-WSHttp 送信ポートの構成

WCF-WSHttp 送信ポートは、プログラムから、または BizTalk 管理コンソールを使用して構成できます。

構成プロパティ

BizTalk エクスプローラー オブジェクト モデルは、TransportTypeData の読み取り/書き込みプロパティを持つ ITransportInfo という名前の送信ポート用のアダプター固有のインターフェイスを公開します。 このプロパティでは、名前と値のペアの XML 文字列の形式で WCF-WSHttp 送信ポートの構成プロパティ バッグを指定できます。

ITransportInfo インターフェイスの TransportTypeData プロパティは必要ありません。 このプロパティを設定しない場合、アダプタでは、次の表に記載されている WCF-WSHttp 送信ポートの構成の既定値が使用されます。

次の表に、BizTalk エクスプローラ オブジェクト モデルで WCF-WSHttp 送信ポート用に設定できる構成プロパティを示します。

プロパティ名 Type 説明
ID XML BLOB:例:

<identity>
<userPrincipalName value="username@contoso.com">
</identity>
この送信ポートが必要とするサービスの ID を指定します。 これらの設定により、この送信ポートでサービスを認証できます。 クライアントとサービスの間のハンドシェイク プロセスでは、Windows Communication Foundation (WCF) インフラストラクチャによって、この要素の値と予期されるサービスの ID が照合されます。

既定値は空の文字列です。
StaticAction -文字列 送信メッセージの SOAPAction HTTP ヘッダー フィールドを指定します。 このプロパティは、メッセージ コンテキスト プロパティ WCF を使用して設定することもできます パイプラインまたはオーケストレーションでのアクション。 この値は、単一アクション形式とアクション マッピング形式の 2 つの異なる方法で指定できます。 このプロパティを 1 つのアクション形式 (例: ) で設定した場合、 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) 攻撃にさらされる危険性を制限できます。

既定値:65536
MessageEncoding 列挙型

- テキスト - テキスト メッセージ エンコーダーを使用します。
- Mtom - メッセージ送信組織メカニズム 1.0 (MTOM) エンコーダーを使用します。
SOAP メッセージをエンコードするために使用されるエンコーダーを指定します。

既定値: Text
TextEncoding 列挙型

- unicodeFFF - Unicode BigEndian エンコード。
- utf-16 - 16 ビット エンコード。
- utf-8 - 8 ビット エンコード。
MessageEncoding プロパティが Text に設定されている場合に、バインディングでメッセージを出力するために使用する文字セット エンコードを指定します

既定値: utf-8
EnableTransaction Boolean WS-AtomicTransaction プロトコルを使用して、メッセージを宛先サービスに送信し、トランザクション コンテキストで MessageBox データベースから削除するかどうかを指定します。

既定値: False
SecurityMode 列挙型

- なし
- メッセージ
- トランスポート
- TransportWithMessageCredential

SecurityMode プロパティのメンバー名の詳細については、UI ガイダンスと開発者 API 名前空間リファレンスの「WCF-WSHttp トランスポート プロパティ] ダイアログ ボックスの [セキュリティ モード] プロパティ、送信、セキュリティ タブ」を参照してください。
使用するセキュリティの種類を指定します。

既定値: なし
TransportClientCredentialType 列挙型

- なし
- 基本的な
- Windows
- 証明 書
- ダイジェスト
- Ntlm

TransportClientCredentialType プロパティのメンバー名の詳細については、UI ガイダンスと開発者 API 名前空間リファレンスの「WCF-WSHttp トランスポート プロパティ] ダイアログ ボックスの [送信]、[セキュリティ] タブのトランスポート クライアント資格情報の種類プロパティ」を参照してください。
送信ポート認証の実行時に使用する資格情報の種類を指定します。

既定値: なし
MessageClientCredentialType 列挙型

- なし
- Windows
-
- 証明 書

MessageClientCredentialType プロパティのメンバー名の詳細については、UI ガイダンスおよび開発者 API 名前空間リファレンスの「WCF-WSHttp トランスポート プロパティ] ダイアログ ボックスの [送信]、[セキュリティ] タブのメッセージ クライアント資格情報の種類プロパティ」を参照してください。
メッセージ ベースのセキュリティを使用してクライアント認証を実行するときに使用する、資格情報の種類を指定します。

既定値: UserName
AlgorithmSuite 列挙型

AlgorithmSuite プロパティのメンバー名の詳細については、UI ガイダンスと開発者 API 名前空間リファレンスの「WCF-WSHttp トランスポートプロパティ]ダイアログ ボックスの [Algorithm suite]\(アルゴリズム スイート\) プロパティ」を参照してください。
メッセージの暗号化とキー ラップのアルゴリズムを指定します。 これらのアルゴリズムは、セキュリティ ポリシー言語 (WS-SecurityPolicy) 仕様で指定されたアルゴリズムにマップされます。

既定値: Basic256
NegotiateServiceCredential Boolean

NegotiateServiceCredential プロパティのメンバー名の詳細については、「UI ガイダンスと開発者 API 名前空間リファレンス」の「WCF-WSHttp トランスポート プロパティ ダイアログ ボックスのNegotiate サービス資格情報プロパティ、送信、セキュリティ」タブを参照してください。
サービスの資格情報が帯域外のこの送信ポートで提供されるか、またはネゴシエーションのプロセスによってこの送信ポートへのサービスから取得されるかを指定します。 そのようなネゴシエーションは、通常のメッセージ交換の準備です。

既定値: False
EnableSecurityContext Boolean この送信ポートとサービスの間の WS-SecureConversation 交換を通じてセキュリティ コンテキスト トークンを確立するかどうかを指定します。 このプロパティが True に設定されている場合、宛先サービスは WS-SecureConversation をサポートする必要があります。

既定値: True
ClientCertificate String この送信ポートをサービスに対して認証する際に使用する X.509 証明書の拇印を指定します。 ClientCredentialsType プロパティが Certificate に設定されている場合、このプロパティは必須です。 このプロパティに使用する証明書は、現在のユーザーの場所にあるマイ ストアにインストールする必要があります。

既定値は空の文字列です。
ServiceCertificate String この送信ポートのメッセージ送信先のサービスを認証する際に使用する X.509 証明書の拇印を指定します。 このプロパティに使用する証明書は、ローカル コンピューターの場所にある Other People ストアにインストールする必要があります。

既定値は空の文字列です。
AffiliateApplicationName String エンタープライズ シングル サインオン (SSO) に使用する関連アプリケーションを指定します。

既定値は空の文字列です。
UseSSO Boolean 接続先のサーバーでの認証でクライアントの資格情報を取得する際に、シングル サインオンを使用するかどうかを指定します。

既定値: False
UserName String UseSSO プロパティが False に設定されている場合に、移行先サーバーでの認証に使用するユーザー名を指定します。 このプロパティでは domain\user 形式は使用できません。

既定値は空の文字列です。
パスワード String UseSSO プロパティが False に設定されている場合に、移行先サーバーでの認証に使用するパスワードを指定します

既定値は空の文字列です。
ProxyToUse 列挙型

- なし - この送信ポートにはプロキシ サーバーを使用しないでください。
- 既定値 - この送信ポートをホストする送信ハンドラーでプロキシ設定を使用します。
- UserSpecified - ProxyAddress プロパティで指定されたプロキシ サーバーを使用します。
送信 HTTP トラフィックに使用するプロキシ サーバーを指定します。

既定値: なし
ProxyAddress String プロキシ サーバーのアドレスを指定します。 セキュリティ構成に応じて、 https または http スキームを使用します。 このアドレスの後にコロンとポート番号 (例: http://127.0.0.1:8080) を指定できます。

既定値は空の文字列です。
ProxyUserName String プロキシに使用するユーザー名を指定します。 WCF-WSHttp アダプターは、バッファー転送モードの WSHttpBinding を 利用してエンドポイントと通信します。 WSHttpBinding のプロキシ資格情報は、セキュリティ モードが [トランスポート] または [なし] の場合にのみ適用されます。 SecurityMode プロパティを Message または TransportWithMessageCredential に設定した場合、WCF-WSHttp アダプターはプロキシに対する認証に ProxyUserName プロパティと ProxyPassword プロパティで指定された資格情報を使用しません。 メモ: WCF-WSHttp 送信アダプターは、プロキシの基本認証を使用します。

既定値は空の文字列です。
ProxyPassword String プロキシに使用するパスワードを指定します。

既定値は空の文字列です。
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 アダプター のプロパティ スキーマとプロパティ」を参照してください。
BizTalk メッセージのボディ部を作成するために使用する受信メッセージの特定の部分を示すボディ パス式を指定します。 この本文パス式は、受信メッセージの SOAP Body ノードの直接の子要素に対して評価されます。 このボディ パス式で複数のノードが返される場合は、最初のノードのみが BizTalk メッセージのボディ部に対して選択されます。 InboundBodyLocation プロパティが UseBodyPath に設定されている場合、このプロパティは必須です。 このプロパティは、送信請求 - 応答のポートに対してのみ有効です。

既定値は空の文字列です。
InboundNodeEncoding 列挙型

- Base64 - Base64 エンコード。
- 16 進数 - 16 進エンコード。
- String - テキスト エンコード - UTF-8。
- XML - WCF アダプターは、 InboundBodyPathExpression の本文パス式によって選択されたノードの外部 XML を使用して BizTalk メッセージ本文を作成します。
InboundBodyPathExpression で指定された本文パスによって識別されるノードのデコードに WCF-WSHttp 送信アダプターが使用するエンコードの種類を指定します。 このプロパティは、 InboundBodyLocation プロパティが UseBodyPath に設定されている場合に必要です。 このプロパティは、送信請求 - 応答のポートに対してのみ有効です。

既定値: XML
PropagateFaultMessage Boolean

- True - 送信処理に失敗したメッセージをサブスクライブ アプリケーション (別の受信ポートやオーケストレーション スケジュールなど) にルーティングします。
- False - 失敗したメッセージを中断し、否定受信確認 (NACK) を生成します。
送信処理に失敗したメッセージをルーティングまたは中断するかどうかを指定します。

このプロパティは、送信請求 - 応答のポートに対してのみ有効です。

既定値: True

BizTalk 管理コンソールを使用して WCF-WSHttp 送信ポートを構成する

BizTalk 管理コンソールで、WCF-WSHttp 送信ポート アダプタの変数を設定できます。 プロパティが送信ポートに設定されていない場合は、上の表に記載されている WCF-WSHttp 送信ポートの構成の既定値が使用されます。

WCF-WSHttp 送信ポートの変数を構成する

  1. BizTalk 管理コンソールで、新しい送信ポートを作成するか、既存の送信ポートをダブルクリックして変更します。 詳細については、「 送信ポートを作成する方法」を参照してください。 すべての送信ポート オプションを構成し、[全般] タブの [トランスポート] セクションの [種類] オプションに WCF-WSHttp を指定します。

  2. [ 全般 ] タブの [ トランスポート ] セクションで、[種類] の横にある [構成 ] ボタンをクリック します

  3. [ WCF-WSHttp トランスポートのプロパティ ] ダイアログ ボックスの [ 全般 ] タブで、WCF-WSHttp 送信ポートのエンドポイント アドレス、サービス ID、 SOAPAction HTTP ヘッダーを構成します。 [WCF-WSHttp トランスポート プロパティ] ダイアログ ボックスの [全般] タブの詳細については、UI ガイダンスと開発者 API 名前空間リファレンス「WCF-WSHttp トランスポート プロパティ] ダイアログ ボックスの [送信]、[全般] タブ」を参照してください。

  4. [ WCF-WSHttp トランスポートのプロパティ ] ダイアログ ボックスの [ バインド ] タブで、タイムアウト、エンコード、およびトランザクションのプロパティを構成します。 [WCF-WSHttp トランスポート プロパティ] ダイアログ ボックスの [バインド] タブの詳細については、UI ガイダンスと開発者 API 名前空間リファレンス「WCF-WSHttp トランスポート プロパティ] ダイアログ ボックスの [送信]、[バインド] タブ」を参照してください。

  5. [ WCF-WSHttp トランスポートのプロパティ ] ダイアログ ボックスの [ セキュリティ ] タブで、WCF-WSHttp 送信ポートのセキュリティ機能を定義します。 [WCF-WSHttp トランスポート プロパティ] ダイアログ ボックスの [セキュリティ] タブの詳細については、UI ガイダンスと開発者 API 名前空間リファレンス「WCF-WSHttp トランスポート プロパティ] ダイアログ ボックスの [送信]、[セキュリティ] タブ」を参照してください。

  6. [ WCF-WSHttp トランスポートのプロパティ ] ダイアログ ボックスの [ プロキシ ] タブで、WCF-WSHttp 送信ポートのプロキシ設定を構成します。 [WCF-WSHttp トランスポート プロパティ] ダイアログ ボックスの [プロキシ] タブの詳細については、UI ガイダンスと開発者 API 名前空間リファレンス「WCF-WSHttp トランスポート プロパティ] ダイアログ ボックスの [送信]、[プロキシ] タブ」を参照してください。

  7. [ WCF-WSHttp トランスポートのプロパティ ] ダイアログ ボックスの [ メッセージ ] タブで、SOAP Body 要素のデータ選択を指定します。 [WCF-WSHttp トランスポート プロパティ] ダイアログ ボックスの [メッセージ] タブの詳細については、UI ガイダンスと開発者 API 名前空間リファレンス「WCF-WSHttp トランスポート プロパティ] ダイアログ ボックスの [送信]、[メッセージ] タブ」を参照してください。

WCF-WSHttp 送信ポートをプログラムで構成する

次の形式を使用してプロパティを設定できます。

 <CustomProps>
  <ServiceCertificate vt="8" />
  <UseSSO vt="11">0</UseSSO>
  <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>
  <Identity vt="8" />
  <AlgorithmSuite vt="8">Basic256</AlgorithmSuite>
  <SecurityMode vt="8">Message</SecurityMode>
  <TransportClientCredentialType vt="8">Windows</TransportClientCredentialType>
  <TextEncoding vt="8">utf-8</TextEncoding>
  <NegotiateServiceCredential vt="11">-1</NegotiateServiceCredential>
  <MaxReceivedMessageSize vt="3">2097152</MaxReceivedMessageSize>
  <ClientCertificate vt="8" />
  <ProxyUserName vt="8" />
  <CloseTimeout vt="8">00:01:00</CloseTimeout>
  <ProxyToUse vt="8">Default</ProxyToUse>
  <EnableTransaction vt="11">0</EnableTransaction>
  <InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
  <InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
  <EstablishSecurityContext vt="11">-1</EstablishSecurityContext>
  <StaticAction vt="8">http://www.northwindtraders.com/Service/Operation</StaticAction>
  <PropagateFaultMessage vt="11">-1</PropagateFaultMessage>
  <ProxyAddress vt="8" />
  <MessageEncoding vt="8">Text</MessageEncoding>
  <OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>

次のコードは、WCF-WSHttp 送信ポートの作成方法を示しています。

// Use BizTalk Explorer object model to create new WCF-WSHttp 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>
                                 <MessageEncoding vt=""8"">Text</MessageEncoding>
                                 <TextEncoding vt=""8"">utf-8</TextEncoding>
                                 <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-WSHttp"];
sendPort.PrimaryTransport.Address = "http://mycomputer/samplepath";
sendPort.PrimaryTransport.TransportTypeData = transportConfigData; // propertyData; // need to change
sendPort.SendPipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruTransmit"];
// Save
explorer.SaveChanges();

参照

WCF アダプター のプロパティ スキーマとプロパティWCF アダプターのコンテキスト プロパティを使用して動的送信ポートを構成する WCF アダプターの証明書をインストールする WCF アダプターのメッセージ本文を指定する WCF-WSHttp アダプターを構成する