次の方法で共有


WCF-NetNamedPipe 受信場所を構成する方法

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

構成プロパティ

BizTalk エクスプローラー オブジェクト モデルにより、プログラムから受信場所を作成および構成することができます。 BizTalk エクスプローラー オブジェクト モデルは、TransportTypeData の読み取り/書き込みプロパティを持つIReceiveLocation 受信場所構成インターフェイスを公開します。 このプロパティでは、名前と値を組み合わせた XML 文字列の形式で WCF-NetNamedPipe 受信場所の構成プロパティ バッグを指定できます。 BizTalk エクスプローラー オブジェクト モデルでこのプロパティを設定するには、IReceiveLocation インターフェイスの InboundTransportLocation プロパティを設定する必要があります。

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

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

プロパティ名 Type 説明
ID XML Blob

例:

<identity>

<userPrincipalName value="username@contoso.com" />

</Id>
この受信場所が提供するサービスの ID を指定します。 Identity プロパティに指定できる値は、セキュリティ構成によって異なります。 これらの設定により、クライアントはこの受信場所を認証できます。 クライアントとサービスの間のハンドシェイク プロセスでは、Windows Communication Foundation (WCF) インフラストラクチャによって、この要素の値と予期されるサービスの ID が照合されます。

既定値は空の文字列です。
OpenTimeout System.TimeSpan チャネルを開く操作が完了するまでの間隔を示す期間値を指定します。

既定値:00:01:00
SendTimeout System.TimeSpan 送信操作が完了するまでの間隔を示す期間値を指定します。 要求 - 応答受信ポートを使用する場合、この値は、対話処理がすべて完了するまでの時間を指定します。これは、クライアントが大きなメッセージを返した場合にも適用されます。

既定値:00:01:00
CloseTimeout System.TimeSpan チャネルを閉じる操作が完了するまでの間隔を示す期間値を指定します。

既定値:00:01:00
MaxReceivedMessageSize Integer 有線ネットワーク上で受信できる、ヘッダーを含むメッセージの最大サイズをバイト単位で指定します。 メッセージのサイズは、各メッセージに割り当てられているメモリの量に制限されます。 このプロパティを使用して、サービス拒否 (DoS) 攻撃にさらされる危険性を制限できます。

既定値:65536
EnableTransaction Boolean クライアントから流れてくるトランザクションを使用してメッセージをメッセージ ボックス データベースに送信するかどうかを指定します。 このプロパティが True に設定されている場合、クライアントは TransactionProtocol プロパティで指定されたトランザクション プロトコルを使用してメッセージを送信する必要があります。 クライアントがトランザクション スコープの外側のメッセージを送信した場合、この受信場所によって例外がクライアントに返され、メッセージは保留されません。

オプションは、一方向の受信場所に対してのみ使用できます。 クライアントが要求 - 応答の受信場所に対するトランザクション コンテキスト内でメッセージを送信した場合、例外がクライアントに返され、メッセージは保留されません。

既定値:False
TransactionProtocol 列挙型

- OleTransaction
- WS-AtomicTransaction
この受信場所で使用するトランザクション プロトコルを指定します。

既定値: OleTransaction
MaxConcurrentCalls Integer 単一のサービス インスタンスに対する同時呼び出しの数を指定します。 制限を超える呼び出しはキューに格納されます。 このプロパティの最小値は 1、最大値は Int32.MaxValue です。

既定値:200
SecurityMode 列挙型

- なし: これにより、セキュリティが無効になります。
- トランスポート: セキュリティは、基になるトランスポート ベースのセキュリティを使用して提供されます。 このモードでは保護レベルを制御することができます。
使用するセキュリティの種類を指定します。

既定値: トランスポート
TransportProtectionLevel 列挙型

- なし: 保護なし。
- 署名: メッセージは署名されています。
- EncryptAndSign: メッセージは暗号化され、署名されます。
TCP トランスポートのレベルでセキュリティを定義します。 メッセージに署名を付けることで、メッセージの転送中に第三者によって改ざんされるリスクが軽減されます。 暗号化によって、トランスポート中にデータ レベルのプライバシーが提供されます。

既定値: EncryptAndSign
UseSSO Boolean エンタープライズ シングル サインオン (SSO) を使用して SSO チケットを発行するためにクライアントの資格情報を取得するかどうかを指定します。
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 列挙型

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

既定値は空の文字列です。
SuspendMessageOnFailure Boolean 受信パイプラインまたはルーティングの障害によって受信処理に失敗した要求メッセージを保留するかどうかを指定します。

既定値: True
IncludeExceptionDetailInFaults Boolean デバッグの目的でクライアントに返される SOAP エラーの詳細にマネージド例外情報を含めるかどうかを指定します。

既定値: False

BizTalk 管理コンソールを使用して WCF-NetNamedPipe 受信場所を構成する

WCF-NetNamedPipe 受信場所のアダプタ変数は、BizTalk 管理コンソールで設定できます。 プロパティが受信場所に設定されていない場合は、BizTalk 管理コンソールで設定された既定の受信ハンドラーの値が使用されます。

Note

次の手順を実行する前に、受信ポートを追加する必要があります。 詳細については、「 受信ポートを作成する方法」を参照してください。

WCF-NetNamedPipe 受信場所の変数を構成する

  1. BizTalk 管理コンソールで、[BizTalk Server管理] を展開し、[BizTalk グループ]、[アプリケーション] の順に展開し、受信場所を作成するアプリケーションを展開します。

  2. BizTalk 管理コンソールの左側のウィンドウで、[ 受信ポート ] ノードをクリックします。 次に右ウィンドウで、既存の受信場所に関連付けられているか、新しい受信場所に関連付ける受信ポートを右クリックし、[ プロパティ] をクリックします。

  3. [ 受信ポートのプロパティ ] ダイアログ ボックスの左側のウィンドウで [ 受信場所] を選択し、右側のウィンドウで既存の受信場所をダブルクリックするか、[ 新規] をクリックして新しい受信場所を作成します。

  4. [受信場所のプロパティ] ダイアログ ボックスの [種類] の横にある [トランスポート] セクションで、ドロップダウン リストから [WCF-NetNamedPipe] を選択し、[構成] をクリックします。

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

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

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

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

プログラムで WCF-NetNamedPipe 受信場所を構成する

これらのプロパティを設定するには、以下の形式を使用します。

<CustomProps>  
  <UseSSO vt="11">0</UseSSO>  
  <InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>  
  <InboundBodyPathExpression vt="8" />  
  <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>  
  <SecurityMode vt="8">Transport</SecurityMode>  
  <TransactionProtocol vt="8">WSAtomicTransactions</TransactionProtocol>  
  <MaxReceivedMessageSize vt="3">2097152</MaxReceivedMessageSize>  
  <TransportProtectionLevel vt="8">EncryptAndSign</TransportProtectionLevel>  
  <CloseTimeout vt="8">00:01:00</CloseTimeout>  
  <SuspendMessageOnFailure vt="11">0</SuspendMessageOnFailure>  
  <EnableTransaction vt="11">-1</EnableTransaction>  
  <InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>  
  <IncludeExceptionDetailInFaults vt="11">0</IncludeExceptionDetailInFaults>  
  <MaxConcurrentCalls vt="3">16</MaxConcurrentCalls>  
  <OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>  
</CustomProps>  

次のコードは、WCF-NetNamedPipe 受信場所の作成方法を示しています。

// Use BizTalk Explorer object model to create new WCF-NetNamedPipe 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>  
  <InboundBodyLocation vt=""8"">UseBodyElement</InboundBodyLocation>  
  <UseSSO vt=""11"">0</UseSSO>  
  <Identity vt=""8"">  
    <identity>  
    <userPrincipalName value=""username@contoso.com"" />  
    </identity>  
  </Identity>  
</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-NetNamedPipe   
int i = 0;  
for(i=0; i < explorer.ReceiveHandlers.Count; ++i)   
{  
    if("WCF-NetNamedPipe" == 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-NetNamedPipe"];  
receiveLocation.TransportTypeData = transportConfigData;  
// Save  
explorer.SaveChanges();   

参照

WCF 受信アダプタへのサービス メタデータの公開
BizTalk ホストとホスト インスタンスの管理
サービス アカウントおよびパスワードを変更する方法
WCF アダプターの証明書のインストール
WCF アダプターのメッセージ本文の指定
WCF-NetNamedPipe アダプターの構成