信頼できるメッセージング プロトコル バージョン 1.0

ここでは、HTTP トランスポートを使用した相互運用に必要な WS-ReliableMessaging 2005/02 (バージョン 1.0) プロトコルに関する Windows Communication Foundation (WCF) 実装の詳細について説明します。WCF は、ここに記載した制約と説明に基づく WS-ReliableMessaging 仕様に従っています。WS-ReliableMessaging バージョン 1.0 プロトコルは、.NET Framework 3.0 以降に実装されています。

WS-ReliableMessaging 2005/02 プロトコルは、ReliableSessionBindingElement によって WCF に実装されます。

便宜上、ここでは次のロールを使用します。

  • イニシエーター : WS-Reliable メッセージ シーケンスの作成を開始するクライアント

  • レスポンダー : イニシエーターの要求を受け取るサービス

このドキュメントでは、次の表に示すプレフィックスと名前空間を使用します。

プレフィックス 名前空間

wsrm

http://schemas.xmlsoap.org/ws/2005/02/rm

netrm

http://schemas.microsoft.com/ws/2006/05/rm

s

http://www.w3.org/2003/05/soap-envelope

wsa

http://schemas.xmlsoap.org/ws/2005/08/addressing

wsse

http://docs.oasis-open.org/wss/2004/01/oasis-200401-wssecurity-secext-1.0.xsd

メッセージング

シーケンス確立メッセージ

WCF は、信頼性の高いメッセージ シーケンスを確立するために、CreateSequence メッセージと CreateSequenceResponse メッセージを実装しています。以下の制約が適用されます。

  • B1101 : WCF イニシエーターは、CreateSequence メッセージのオプションの Expires 要素を生成しません。また、CreateSequence メッセージに Offer 要素が含まれているときに、この Offer 要素内のオプションの Expires 要素も生成しません。

  • B1102 : CreateSequence メッセージのアクセス時に、WCF Responder は、両方の Expires 要素を送受信しますが (存在する場合)、値は使用しません。

WS-ReliableMessaging では、セッションを形成する、相関する 2 つの逆方向シーケンスを確立するために、Offer 機構が導入されています。

  • R1103 : CreateSequenceOffer 要素が含まれている場合、Reliable メッセージング レスポンダーは、シーケンスを受け入れ、wsrm:Accept 要素を含む CreateSequenceResponse で応答して、相関する 2 つの逆方向シーケンスを形成するか、CreateSequence 要求を拒否する必要があります。

  • R1104 : 逆方向シーケンスでフローする SequenceAcknowledgement およびアプリケーション メッセージは、CreateSequenceReplyTo エンドポイント参照に送信される必要があります。

  • R1105 : CreateSequenceAcksTo エンドポイント参照と ReplyTo エンドポイント参照には、オクテット単位で一致するアドレス値が必要です。

    WCF レスポンダーは、シーケンスを作成する前に、AcksTo EPR と ReplyTo EPR の URI 部分が同一であるかどうかを検証します。

  • R1106 : CreateSequenceAcksTo および ReplyTo の各エンドポイント参照は、参照パラメーターの同じセットを持つ必要があります。

    WCF は、CreateSequenceAcksToReplyTo の [参照パラメーター] が同一であることを強制するわけではありません。ただし、これらが同一であると想定した上で、受信確認と逆方向シーケンス メッセージに ReplyTo エンドポイント参照の [参照パラメーター] を使用します。

  • R1107 : Offer 機構を使用して 2 つの逆方向シーケンスを確立した場合、逆方向シーケンスでフローする SequenceAcknowledgement およびアプリケーション メッセージは、CreateSequenceReplyTo エンドポイント参照に送信される必要があります。

  • R1108 : Offer 機構を使用して 2 つの逆方向シーケンスを確立した場合、CreateSequenceResponsewsrm:Accept 要素の wsrm:AcksTo エンドポイント参照子要素の [address] プロパティは、CreateSequence の送信先 URI とバイト単位で一致する必要があります。

  • R1109 : Offer 機構を使用して 2 つの逆方向シーケンスを確立した場合、イニシエーターによって送信されたメッセージとレスポンダーによるメッセージの受信確認は、同じエンドポイント参照に送信される必要があります。

    WCF は、WS-ReliableMessaging を使用して、イニシエーターとレスポンダー間で信頼性できるセッションを確立します。WCF の WS-ReliableMessaging 実装により、一方向、要求/応答、双方向の各メッセージ パターンの信頼できるセッションが実現します。CreateSequence/CreateSequenceResponse で WS-ReliableMessaging の Offer 機構を使用すると、相関する 2 つの逆方向シーケンスを確立でき、すべてのメッセージ エンドポイントに適したセッション プロトコルが提供されます。WCF では、セッション整合性を保つためのエンドツーエンドの保護を含むこのようなセッションに対してセキュリティが保証されているため、同じパーティを対象とするメッセージが同じ送信先に到着することが事実上保証されます。また、これにより、アプリケーション メッセージにシーケンス受信確認を抱き合わせることができます。したがって、制約 R1104、R1105、および R1108 が WCF に適用されています。

CreateSequence メッセージの例を次に示します。

<s:Envelope>
  <s:Header>
    <a:Action s:mustUnderstand="1">
      http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence
    </a:Action>
    <a:ReplyTo>
      <a:Address>        
         http://Business456.com/clientA      
      </a:Address>
    </a:ReplyTo>
    <a:MessageID>
      urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
    </a:MessageID>
    <a:To s:mustUnderstand="1">
      http://Business456.com/clientA
    </a:To>
  </s:Header>
  <s:Body>
    <wsrm:CreateSequence>
      <wsrm:AcksTo>
       <wsa:Address>
         http://Business456.com/clientA
       </wsa:Address>
     </wsrm:AcksTo>
     <wsrm:Offer>
      <wsrm:Identifier>
        urn:uuid:0afb8d36-bf26-4776-b8cf-8c91fddb5496
      </wsrm:Identifier>
     </wsrm:Offer>
   </wsrm:CreateSequence>
  </s:Body>
</s:Envelope>

CreateSequenceResponse メッセージの例を次に示します。

<s:Envelope>
  <s:Header>
    <a:Action s:mustUnderstand="1">
      http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequenceResponse
    </a:Action>
    <a:RelatesTo>
      urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
    </a:RelatesTo>
    <a:To s:mustUnderstand="1">
      http://Business456.com/clientA
    </a:To>
  </s:Header>
  <s:Body>
   <wsrm:CreateSequenceResponse>
    <Identifier>
     urn:uuid:eea0a36c-b38a-43e8-8c76-2fabe2d76386
    </Identifier>
    <Accept>
    <AcksTo>
      <a:Address>
        http://BusinessABC.com/serviceA
      </a:Address>
    </AcksTo>
    </Accept>
   </wsrm:CreateSequenceResponse>
  </s:Body>
</s:Envelope>

シーケンス

シーケンスに適用される制約を以下に示します。

  • B1201 : WCF は、xs:long の最大値 (9223372036854775807) 以下のシーケンス番号を生成し、これらの番号にアクセスします。

  • B1202: WCF は、アクション URI が http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage である、空の本文を持つ最後のメッセージを必ず生成します。

  • B1203 : アクション URI が http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage でない場合には、WCF は LastMessage 要素を含むシーケンス ヘッダーを持つメッセージを受信および配信します。

シーケンス ヘッダーのサンプル

<wsrm:Sequence>
  <wsrm:Identifier>
    urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
  </wsrm:Identifier>
  <wsrm:MessageNumber>
    10
  </wsrm:MessageNumber>
  <wsrm:LastMessage/>
 </wsrm:Sequence>

AckRequested ヘッダー

WCF は、keep-alive 機構として AckRequested ヘッダーを使用します。WCF は、オプションの MessageNumber 要素を生成しません。MessageNumber 要素を含む AckRequested ヘッダーを持つメッセージを受信すると、次の例に示すように、WCF は MessageNumber 要素の値を無視します。

<wsrm:AckRequested>
  <wsrm:Identifier>
    urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
  </wsrm:Identifier>
</wsrm:AckRequested>

SequenceAcknowledgement ヘッダー

WCF は、WS-ReliableMessaging で用意されているシーケンス受信確認の抱き合わせ機構を使用します。

  • R1401 : Offer 機構を使用して 2 つの逆方向シーケンスを確立した場合、目的の受信者に送信されるアプリケーション メッセージに、SequenceAcknowledgement ヘッダーを含めることができます。

  • B1402 : WCF がシーケンス メッセージを受信する前に受信確認を生成する必要がある場合 (AckRequested メッセージに応える場合など)、次の例に示すように、WCF は範囲 0 ~ 0 を含む SequenceAcknowledgement ヘッダーを生成します。

    <wsrm:SequenceAcknowledgement>
      <wsrm:Identifier>
        urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
      </wsrm:Identifier>
      <wsrm:AcknowledgementRange Upper="0" Lower="0"/>
    </wsrm:SequenceAcknowledgement>
    
  • B1403 : WCF は、Nack 要素をサポートしていますが、Nack 要素を含む SequenceAcknowledgement ヘッダーは生成しません。

WS-ReliableMessaging エラー

WCF の WS-ReliableMessaging エラー実装に適用される制約を以下に示します。

  • B1501 : WCF は、MessageNumberRollover エラーを生成しません。

  • B1502 : WCF エンドポイントは、仕様に記載されているように CreateSequenceRefused エラーを生成する場合があります。

  • B1503 : サービス エンドポイントが接続制限に達したため、新しい接続を処理できない場合、次の例に示すように、WCF は CreateSequenceRefused エラー サブコード netrm:ConnectionLimitReached を追加生成します。

    <s:Envelope>
      <s:Header>
        <wsa:Action>
          http://schemas.xmlsoap.org/ws/2005/08/addressing/fault
        </wsa:Action>
      </s:Header>
      <s:Body>
        <s:Fault>
          <s:Code>
            <s:Value>
              s:Receiver
            </s:Value>
            <s:Subcode>
              <s:Value>
                wsrm:CreateSequenceRefused
              </s:Value>
              <s:Subcode>
                <s:Value>
                  netrm:ConnectionLimitReached
                </s:Value>
              </s:Subcode>
            </s:Subcode>
          </s:Code>
          <s:Reason>
            <s:Text xml:lang="en">
              [Reason]
            </s:Text>
          </s:Reason>
        </s:Fault>
      </s:Body>
    </s:Envelope>
    

WS-Addressing エラー

WS-ReliableMessaging は WS-Addressing を使用するため、WCF の WS-ReliableMessaging 実装は、WS-Addressing エラーを生成する場合があります。ここでは、WS-ReliableMessaging レイヤーで WCF が明示的に生成する WS-Addressing エラーについて説明します。

  • B1601 : 次のいずれかに該当する場合、WCF は Message Addressing Header Required エラーを生成します。

    • メッセージに Sequence ヘッダーと Action ヘッダーがない。

    • CreateSequence メッセージに MessageId ヘッダーがない。

    • CreateSequence メッセージに ReplyTo ヘッダーがない。

  • B1602 : WCF は、Sequence ヘッダーがなく、WS-Reliable Messaging 仕様では認識されない Action ヘッダーを持つメッセージへの応答として Action Not Supported エラーを生成します。

  • B1603 : WCF は、CreateSequence メッセージのアドレス指定ヘッダーの検査に基づいて、エンドポイントがそのシーケンスを処理しないことを示す Endpoint Unavailable エラーを生成します。

プロトコル コンポジション

WS-Addressing によるコンポジション

WCF は、WS-Addressing の 2 つのバージョンをサポートしています。WS-Addressing 2004/08 [WS-ADDR] と、W3C WS-Addressing 1.0 Recommendation ([WS-ADDR-CORE] および [WS-ADDR-SOAP]) です。

WS-ReliableMessaging 仕様に記載されているのは、WS-Addressing 2004/08 だけですが、使用する WS-Addressing のバージョンが制限されているわけではありません。WCF に適用される制約を以下に示します。

  • R2101 : WS-Addressing 2004/08 と WS-Addressing 1.0 の両方を WS-ReliableMessaging で使用できます。

  • R2102 : 特定の WS-ReliableMessaging シーケンス、または wsrm:Offer 機構を使用して関連付けられた逆方向シーケンスのペアでは、同じバージョンの WS-Addressing を使用する必要があります。

SOAP によるコンポジション

WCF では、WS-ReliableMessaging で SOAP 1.1 と SOAP 1.2 の両方を使用できます。

WS-Security と WS-SecureConversation によるコンポジション

WCF は、セキュリティで保護されたトランスポート (HTTPS)、WS-Security によるコンポジション、および WS-SecureConversation によるコンポジションを使用して、WS-ReliableMessaging シーケンスを保護します。WCF に適用される制約を以下に示します。

  • R2301 : 個々のメッセージの整合性と機密性だけでなく、WS-ReliableMessaging シーケンスの整合性を保護するために、WCF では WS-SecureConversation を使用する必要があります。

  • R2302 : WS-ReliableMessaging シーケンスを確立する前に、WS-SecureConversation セッションを確立する必要があります。

  • R2303 : WS-ReliableMessaging シーケンスの有効期間が WS-SecureConversation セッションの有効期間よりも長い場合は、対応する WS-SecureConversation Renewal バインディングを使用して、WS-SecureConversation によって確立された SecurityContextToken を更新する必要があります。

  • B2304 : WS-ReliableMessaging シーケンスまたは相関する逆方向シーケンスのペアは、必ず同じ WS-SecureConversation セッションにバインドされます。

    WCF ソースは、CreateSequence メッセージの要素拡張セクションに、wsse:SecurityTokenReference 要素を生成します。

  • R2305 : WS-SecureConversation を使用して構成した場合、CreateSequence メッセージに wsse:SecurityTokenReference 要素が含まれている必要があります。

WS-ReliableMessaging の WS-Policy アサーション

WCF は、WS-ReliableMessaging の wsrm:RMAssertion WS-Policy アサーションを使用して、エンドポイントの機能を記述します。WCF に適用される制約を以下に示します。

  • B3001 : WCF は、wsrm:RMAssertion WS-Policy アサーションを wsdl:binding 要素に添付します。WCF は、wsdl:binding 要素および wsdl:port 要素への添付をサポートしています。

  • B3002 : WCF は、WS-ReliableMessaging アサーションの以下のオプション プロパティをサポートしており、WCF の ReliableMessagingBindingElement でこれらのプロパティを制御できます。

    • wsrm:InactivityTimeout

    • wsrm:AcknowledgementInterval

    例を次に示します。

    <wsrm:RMAssertion>
      <wsrm:InactivityTimeout Milliseconds="600000" />
      <wsrm:AcknowledgementInterval Milliseconds="200" />
    </wsrm:RMAssertion>
    

WS-ReliableMessaging のフロー制御拡張

WCF は、WS-Reliable Messaging の機能拡張を使用して、シーケンス メッセージ フローのさらに厳密な制御を実現します。

フロー制御を有効にするには、ReliableSessionBindingElementFlowControlEnabled bool プロパティを true に設定します。WCF に適用される制約を以下に示します。

  • B4001 : 信頼できるメッセージング フロー制御を有効にした場合、WCF は SequenceAcknowledgement ヘッダーの要素拡張に netrm:BufferRemaining 要素を生成します。

  • B4002 : 信頼できるメッセージング フロー制御を有効にした場合、次の例に示すように、WCF では netrm:BufferRemaining 要素が SequenceAcknowledgement ヘッダーに存在する必要はありません。

    <wsrm:SequenceAcknowledgement>
      <wsrm:Identifier>
        http://fabrikam123.com/abc
      </wsrm:Identifier>
      <wsrm:AcknowledgementRange Upper="1" Lower="1"/>           
      <netrm:BufferRemaining>
        8
      </netrm:BufferRemaining>
    </wsrm:SequenceAcknowledgement>
    
  • B4003 : WCF は、netrm:BufferRemaining を使用して、信頼できるメッセージングの送信先がバッファーに保持できる新しいメッセージの数を示します。

  • B4004 : 信頼できるメッセージングの送信先アプリケーションがメッセージを迅速に受信できない場合、WCF の信頼できるメッセージング サービスは、送信するメッセージの数を抑制します。信頼できるメッセージングの送信先がメッセージをバッファーに保持する場合、要素の値が 0 になります。

  • B4005: WCF は、0 ~ 4096 の整数値の netrm:BufferRemaining を生成し、0 ~ 214748364 (xs:intmaxInclusive 値) の整数値を読み取ります。

メッセージ交換パターン

ここでは、WS-ReliableMessaging をさまざまなメッセージ交換パターンに使用する際の WCF の動作について説明します。各メッセージ交換パターンについて、次の 2 つの展開シナリオを考えます。

  • アドレス不可能なイニシエーター : イニシエーターはファイアウォールの内側にあります。レスポンダーは HTTP 応答でのみイニシエーターにメッセージを配信できます。

  • アドレス可能なイニシエーター : イニシエーターとレスポンダーの両方に HTTP 要求を送信できます。つまり、逆方向の 2 つの HTTP 接続を確立できます。

一方向 : アドレス不可能なイニシエーター

バインディング

WCF は、1 つの HTTP チャネルで 1 つのシーケンスを使用して、一方向メッセージ交換パターンを提供します。WCF は、HTTP 要求を使用して RMS から RMD にすべてのメッセージを送信し、HTTP 応答を使用して RMD から RMS にすべてのメッセージを送信します。

CreateSequence の交換

WCF イニシエーターは、オファーを含まない CreateSequence メッセージを生成します。WCF レスポンダーは、シーケンスを作成する前に、CreateSequence にオファーが含まれていないことを確認します。WCF レスポンダーは、CreateSequenceResponse メッセージで CreateSequence 要求に応答します。

SequenceAcknowledgement

WCF イニシエーターは、CreateSequence メッセージとエラー メッセージを除くすべてのメッセージの応答で受信確認を処理します。WCF レスポンダーは、シーケンス メッセージと AckRequested メッセージの両方への応答として、常にスタンドアロンの受信確認を生成します。

TerminateSequence メッセージ

WCF は、TerminateSequence を一方向操作として処理します。つまり、HTTP 応答には、空の本文と HTTP 202 ステータス コードが含まれます。

一方向 : アドレス可能なイニシエーター

バインディング

WCF は、受信用 HTTP チャネルと送信用 HTTP チャネルで 1 つのシーケンスを使用して、一方向メッセージ交換パターンを提供します。WCF は、HTTP 要求を使用してすべてのメッセージを送信します。すべての HTTP 応答に、空の本文と HTTP 202 ステータス コードが含まれます。

CreateSequence の交換

WCF イニシエーターは、オファーを含まない CreateSequence メッセージを生成します。WCF レスポンダーは、シーケンスを作成する前に、CreateSequence にオファーが含まれていないことを確認します。WCF レスポンダーは、ReplyTo エンドポイント参照によってアドレス指定された HTTP 要求で CreateSequenceResponse メッセージを送信します。

双方向 : アドレス可能なイニシエーター

バインディング

WCF は、受信用 HTTP チャネルと送信用 HTTP チャネルで 2 つのシーケンスを使用して、完全に非同期の双方向メッセージ交換パターンを提供します。WCF は、HTTP 要求を使用してすべてのメッセージを送信します。すべての HTTP 応答に、空の本文と HTTP 202 ステータス コードが含まれます。

CreateSequence の交換

WCF イニシエーターは、オファーを含む CreateSequence メッセージを生成します。WCF レスポンダーは、シーケンスを作成する前に、CreateSequence にオファーが含まれていることを確認します。WCF は、CreateSequenceReplyTo エンドポイント参照にアドレス指定された HTTP 要求で CreateSequenceResponse を送信します。

シーケンスの有効期間

WCF は、2 つのシーケンスを 1 つの完全な双方向セッションとして処理します。

一方のシーケンスをフォールトするエラーが生成されると、WCF は、リモート エンドポイントに両方のシーケンスをフォールトするよう要求します。一方のシーケンスをフォールトするエラーを読み取ると、WCF は両方のシーケンスをフォールトします。

WCF は、送信シーケンスを終了し、受信シーケンスで引き続きメッセージを処理できます。逆に、WCF は、受信シーケンスの終了を処理し、送信シーケンスで引き続きメッセージを送信することもできます。

要求/応答 : アドレス不可能なイニシエーター

バインディング

WCF は、1 つの HTTP チャネルで 2 つのシーケンスを使用して、一方向の要求/応答メッセージ交換パターンを提供します。WCF は、HTTP 要求を使用して要求シーケンスのメッセージを送信し、HTTP 応答を使用して応答シーケンスのメッセージを送信します。

CreateSequence の交換

WCF イニシエーターは、オファーを含む CreateSequence メッセージを生成します。WCF レスポンダーは、シーケンスを作成する前に、CreateSequence にオファーが含まれていることを確認します。WCF レスポンダーは、CreateSequenceResponse メッセージで CreateSequence 要求に応答します。

一方向のメッセージ

一方向メッセージ交換プロトコルを正常に完了するために、WCF イニシエーターは、HTTP 要求で要求シーケンス メッセージを送信し、HTTP 応答でスタンドアロンの SequenceAcknowledgement メッセージを受信します。SequenceAcknowledgement は、送信されたメッセージの受信確認を行う必要があります。

WCF レスポンダーは、受信確認、エラー、または空の本文と HTTP 202 ステータス コードで要求に応答できます。

双方向のメッセージ

双方向メッセージ交換プロトコルを正常に完了するために、WCF イニシエーターは、HTTP 要求で要求シーケンス メッセージを送信し、HTTP 応答で応答シーケンス メッセージを受信します。応答では、送信された要求シーケンス メッセージの受信確認を行う SequenceAcknowledgement を送信する必要があります。

WCF レスポンダーは、アプリケーション応答、エラー、または空の本文と HTTP 202 ステータス コードで要求に応答できます。

一方向のメッセージが存在することと、アプリケーション応答のタイミングもあるため、要求シーケンス メッセージのシーケンス番号と応答メッセージのシーケンス番号には相関関係はありません。

応答の再試行

WCF は、双方向メッセージ交換プロトコルの相関関係について、HTTP 要求/応答の相関関係に依存しています。このため、WCF イニシエーターは、要求シーケンス メッセージが受信確認されたときではなく、HTTP 応答によって受信確認、ユーザー メッセージ、またはエラーが送信されたときに、要求シーケンス メッセージの再試行を停止します。WCF レスポンダーは、応答が関連付けられている要求の HTTP 要求レッグで応答を再試行します。

LastMessage の交換

WCF イニシエーターは、HTTP 要求レッグで空の本文の最後のメッセージを生成し、送信します。WCF は応答を要求しますが、実際の応答メッセージは無視します。WCF レスポンダーは、応答シーケンスの空の本文の最後のメッセージで、要求シーケンスの空の本文の最後のメッセージに応答します。

アクション URI が http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage ではない最後のメッセージを WCF レスポンダーが受信した場合、WCF は最後のメッセージで応答します。双方向メッセージ交換プロトコルの場合、最後のメッセージでアプリケーション メッセージが送信されます。一方向メッセージ交換プロトコルの場合、最後のメッセージは空です。

WCF レスポンダーは、応答シーケンスの空の本文の最後のメッセージに対する受信確認を要求しません。

TerminateSequence の交換

すべての要求が有効な応答を受信すると、WCF イニシエーターは、HTTP 要求レッグで要求シーケンスの TerminateSequence メッセージを生成し、送信します。WCF は応答を要求しますが、実際の応答メッセージは無視します。WCF レスポンダーは、応答シーケンスの TerminateSequence メッセージで、要求シーケンスの TerminateSequence メッセージに応答します。

通常のシャットダウン シーケンスでは、両方の TerminateSequence メッセージで完全な SequenceAcknowledgement を送信します。

要求/応答 : アドレス可能なイニシエーター

バインディング

WCF は、受信用 HTTP チャネルと送信用 HTTP チャネルで 2 つのシーケンスを使用して、要求/応答メッセージ交換パターンを提供します。WCF は、HTTP 要求を使用してすべてのメッセージを送信します。すべての HTTP 応答に、空の本文と HTTP 202 ステータス コードが含まれます。

CreateSequence の交換

WCF イニシエーターは、オファーを含む CreateSequence メッセージを生成します。WCF レスポンダーは、シーケンスを作成する前に、CreateSequence にオファーが含まれていることを確認します。WCF は、CreateSequenceReplyTo エンドポイント参照にアドレス指定された HTTP 要求で CreateSequenceResponse を送信します。

要求/応答の相関関係

WCF イニシエーターは、すべてのアプリケーション要求メッセージに MessageIdReplyTo エンドポイント参照が保持されていることを確認します。WCF イニシエーターは、各アプリケーション要求メッセージで、CreateSequence メッセージの ReplyTo エンドポイント参照を適用します。WCF レスポンダーは、受信要求メッセージに MessageIdReplyTo が保持されていることを要求します。WCF レスポンダーは、CreateSequence とすべてのアプリケーション要求メッセージのエンドポイント参照の URI が同一であることを確認します。