WCF-NetMsmq 送信ポートを構成する方法

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

構成プロパティ

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

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

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

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

例:

<identity>

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

</Id>
この送信ポートが必要とするサービスの 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>

<操作名="Op1" Action="http://contoso.com/Svc/Op1" />

<操作名="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
EnableTransactional Boolean 宛先サービスのメッセージ キューの種類として、トランザクションまたは非トランザクションを指定します。 このプロパティが True に設定されている場合、この送信ポートによって処理される各メッセージは 1 回だけ配信され、送信者には配信エラーが通知されます。 トランザクション送信ポートを介してメッセージを送信するには、サービスの 永続 バインディング要素と exactlyOnce バインド要素の両方を True に設定する必要があります。 このプロパティが False に設定されている場合、メッセージは配信保証なしで転送されます。

既定値: True
DeadLetterQueue 列挙型

- なし - 配信不能キューは使用されません。
- システム - システム全体の配信不能キューを使用します。
- カスタム - カスタム配信不能キューを使用します。
アプリケーションへの配信に失敗したメッセージの転送先となる配信不能キューを指定します。 配信不能キューに配信されるメッセージの詳細については、「UI ガイダンスと開発者 API 名前空間リファレンス」の「WCF-NetMsmq トランスポートのプロパティ] ダイアログ ボックスの [送信]、[バインド] タブ」を参照してください。

: カスタム配信不能キューは、Windows Vista でリリースされたメッセージ キュー (MSMQ) 4.0 でのみサポートされます。

既定値: System
CustomDeadLetterQueue String アプリケーションごとの配信不能キューの場所に対して net.msmq スキームを使用して完全修飾 URI を指定します。期限切れになったメッセージや転送または配信に失敗したメッセージが配置されます。 たとえば、net.msmq://localhost/deadLetterQueueName と指定します。 配信不能キューは、配信に失敗した期限切れメッセージに対する送信元アプリケーションのキュー マネージャーのキューです。 このプロパティは、 DeadLetterQueue プロパティが Custom に設定されている場合に必要です。

既定値は空の文字列です。
TimeToLive System.TimeSpan メッセージが期限切れになり、配信不能キューに格納されるまでのメッセージが有効な期間を指定します。 このプロパティは、時間が重要な要素になるメッセージがこの送信ポートによって処理されるまで古くならないようにするために設定されます。 指定された時間間隔内にこの送信ポートによって処理されないキュー内のメッセージは、期限切れのメッセージといいます。 期限切れのメッセージは、配信不能キューと呼ばれる特別なキューに送信されます。 配信不能キューの場所は、 DeadLetterQueue プロパティで設定されます。

既定値: 1.00:00:00
UseSourceJournal Boolean この送信ポートによって処理されるメッセージのコピーをソースジャーナルキューに格納するかどうかを指定します。

既定値: False
SecurityMode 列挙型

- なし
- メッセージ
- トランスポート
- 両方とも

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

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

- なし
- WindowsDomain
- 証明 書

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

既定値: WindowsDomain
MsmqProtectionLevel 列挙型

- なし: 保護なし。
- 署名: メッセージは署名されています。
- EncryptAndSign: メッセージは暗号化され、署名されます。 この保護レベルを使用するには、MSMQActive Directory 統合を有効にする必要があります。
MSMQ トランスポートのレベルでメッセージをセキュリティ保護する方法を指定します。

既定値: 記号
MsmqSecureHashAlgorithm 列挙型

- MD5
- SHA1
- SHA25
- Sha512
メッセージ ダイジェストの計算に使用するハッシュ アルゴリズムを指定します。 MsmqProtectionLevel プロパティが None に設定されている場合、このプロパティは使用できません。

既定値: SHA1
MsmqEncryptionAlgorithm 列挙型

- RC4Stream
- Aes
メッセージ キュー マネージャー間でメッセージを転送するときに、有線ネットワーク上でメッセージを暗号化するために使用するアルゴリズムを指定します。 このプロパティは、 MsmqProtectionLevel プロパティが EncryptAndSign に設定されている場合にのみ使用できます。

既定値: RC4Stream
MessageClientCredentialType 列挙型

- なし
- Windows
-
- 証明 書

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

既定値: Windows
AlgorithmSuite 列挙型

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

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

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

既定値は空の文字列です。
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 に設定されている場合は、このプロパティが必要です。

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

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

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

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

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

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

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

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

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

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

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

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

<CustomProps>  
  <ServiceCertificate vt="8" />  
  <UseSSO vt="11">0</UseSSO>  
  <CloseTimeout vt="8">00:01:00</CloseTimeout>  
  <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>  
  <MsmqProtectionLevel vt="8">Sign</MsmqProtectionLevel>  
  <OpenTimeout vt="8">00:01:00</OpenTimeout>  
  <UseSourceJournal vt="11">0</UseSourceJournal>  
  <AlgorithmSuite vt="8">Basic256</AlgorithmSuite>  
  <SecurityMode vt="8">Transport</SecurityMode>  
  <CustomDeadLetterQueue vt="8" />  
  <ClientCertificate vt="8" />  
  <MsmqEncryptionAlgorithm vt="8">RC4Stream</MsmqEncryptionAlgorithm>  
  <StaticAction vt="8">http://www.northwindtraders.com/Service/Operation</StaticAction>  
  <MsmqSecureHashAlgorithm vt="8">Sha1</MsmqSecureHashAlgorithm>  
  <EnableTransaction vt="11">-1</EnableTransaction>  
  <TimeToLive vt="8">1.00:00:00</TimeToLive>  
  <MsmqAuthenticationMode vt="8">WindowsDomain</MsmqAuthenticationMode>  
  <DeadLetterQueue vt="8">System</DeadLetterQueue>  
  <OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>  
</CustomProps>  

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

// Use BizTalk Explorer object model to create new WCF-NetMsmq 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-NetMsmq"];  
sendPort.PrimaryTransport.Address = "net.msmq://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-NetMsmq アダプターの構成
WCF アダプター コンテキスト プロパティによる動的送信ポートの構成