次の方法で共有


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

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

構成プロパティ

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

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

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

プロパティ名 タイプ 説明
アイデンティティ XML Blob

例:

<アイデンティティ>

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

</アイデンティティ>
この送信ポートで想定されるサービスの ID を指定します。 これらの設定により、この送信ポートでサービスを認証できます。 クライアントとサービス間のハンドシェイク プロセスでは、Windows Communication Foundation (WCF) インフラストラクチャによって、想定されるサービスの ID がこの要素の値と一致することが保証されます。

既定値は空の文字列です。
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 プロパティを設定できます。

既定値は空の文字列です。
OpenTimeout System.TimeSpan チャネルオープン操作が完了するまでに指定された時間間隔を示す期間値を指定します。

既定値: 00:01:00
SendTimeout System.TimeSpan 送信操作が完了するまでの時間間隔を示す期間値を指定します。 solicit-response 送信ポートを使用する場合、この値は、サービスから大きなメッセージが返された場合でも、対話全体が完了するまでの期間を指定します。

既定値: 00:01:00
クローズタイムアウト System.TimeSpan チャネルクローズ操作が完了するまでに指定された時間間隔を示す期間値を指定します。

既定値: 00:01:00
EnableTransactional ボーリアン 宛先サービスのメッセージ キューの種類として、トランザクションまたは非トランザクションを指定します。 このプロパティが True に設定されている場合、この送信ポートによって処理される各メッセージは 1 回だけ配信され、送信者には配信エラーが通知されます。 トランザクション送信ポートを介してメッセージを送信するには、サービスの 永続的 なバインド要素と exactlyOnce バインド要素の両方を True に設定する必要があります。 このプロパティが False に設定されている場合、メッセージは配信保証なしで転送されます。

既定値: True
DeadLetterQueue 列挙型

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

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

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

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

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

既定値: 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 列挙型

- 何一つ
- ウィンドウズ
- UserName
- 証書

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

既定値: Windows
AlgorithmSuite 列挙型

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

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

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

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

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

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] ダイアログ ボックスの [送信]、[WCF-NetMsmq トランスポート プロパティ] ダイアログ ボックスの [全般] タブを、「UI ガイダンスと開発者 API 名前空間のリファレンス」で参照してください。

  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 アダプター コンテキスト プロパティを使用した動的送信ポートの構成