このトピックでは、HTTP トランスポートを使用した相互運用に必要な WS-Reliable Messagy 2005 年 2 月 (バージョン 1.0) プロトコルの Windows Communication Foundation (WCF) 実装の詳細について説明します。 WCF は、このトピックで説明する制約と説明を使用して、WS-Reliable メッセージングの仕様に従います。 WS-ReliableMessaging バージョン 1.0 プロトコルは WinFX 以降で実装されることに注意してください。
WS-Reliable メッセージング 2005 年 2 月のプロトコルは、によって WCF に実装されます。
便宜上、このトピックでは次のロールを使用します。
イニシエーター: メッセージ シーケンスの作成 WS-Reliable 開始するクライアント
レスポンダー: イニシエーターの要求を受信するサービス
このドキュメントでは、次の表のプレフィックスと名前空間を使用します。
接頭辞 | Namespace |
---|---|
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
メッセージにアクセスすると、WCFResponder
はExpires
要素が存在する場合は両方の要素を送受信しますが、値は使用しません。
WS-Reliable メッセージングでは、セッションを形成する 2 つの逆相関シーケンスを確立するための Offer
メカニズムが導入されています。
R1103:
CreateSequence
にOffer
要素が含まれている場合、Reliable Messaging Responder はシーケンスを受け入れ、wsrm:Accept
要素を含むCreateSequenceResponse
で応答し、2 つの相関する逆シーケンスを形成するか、CreateSequence
要求を拒否する必要があります。R1104: 逆シーケンスで送信される
SequenceAcknowledgement
およびアプリケーション メッセージは、CreateSequence
のReplyTo
エンドポイント参照に送信する必要があります。R1105:
CreateSequence
内のAcksTo
およびReplyTo
エンドポイント参照には、オクテットに一致するアドレス値が必要です。WCF レスポンダーは、シーケンスを作成する前に、
AcksTo
とReplyTo
EPR の URI 部分が同じであることを確認します。R1106:
CreateSequence
のAcksTo
とReplyTo
エンドポイント参照には、同じ参照パラメーターのセットが必要です。WCF では、
CreateSequence
のAcksTo
とReplyTo
の [参照パラメーター] は同一であり、受信確認と逆のシーケンス メッセージに対してエンドポイント参照ReplyTo
[参照パラメーター] を使用することを前提としています。R1107:
Offer
メカニズムを使用して 2 つの逆シーケンスが確立された場合、逆シーケンスに流れるSequenceAcknowledgement
メッセージとアプリケーション メッセージは、CreateSequence
のReplyTo
エンドポイント参照に送信する必要があります。R1108: Offer メカニズムを使用して 2 つの逆シーケンスが確立された場合、
CreateSequenceResponse
のwsrm:Accept
要素のwsrm:AcksTo
Endpoint Reference 子要素の[address]
プロパティは、CreateSequence
の宛先 URI とバイト単位で一致する必要があります。R1109:
Offer
メカニズムを使用して 2 つの逆シーケンスが確立された場合、イニシエーターによって送信されたメッセージとレスポンダーによるメッセージへの受信確認を同じエンドポイント参照に送信する必要があります。WCF では、WS-Reliable メッセージングを使用して、イニシエーターとレスポンダーの間で信頼できるセッションを確立します。 WCF の WS-Reliable メッセージング実装は、一方向、要求/応答、および全二重メッセージング パターンに対して信頼性の高いセッションを提供します。
CreateSequence
/CreateSequenceResponse
の WS-Reliable メッセージング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: WCF は、アクション URI が
http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage
されていない限り、LastMessage
要素を含む Sequence ヘッダーを含むメッセージを受信して配信します。
シーケンス ヘッダーの例。
<wsrm:Sequence>
<wsrm:Identifier>
urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
</wsrm:Identifier>
<wsrm:MessageNumber>
10
</wsrm:MessageNumber>
<wsrm:LastMessage/>
</wsrm:Sequence>
AckRequested ヘッダー
WCF では、キープアライブ メカニズムとして 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-Reliable メッセージングで提供されるシーケンス受信確認にピギー バック メカニズムを使用します。
R1401:
Offer
メカニズムを使用して 2 つの逆シーケンスが確立された場合、SequenceAcknowledgement
ヘッダーは、目的の受信者に送信される任意のアプリケーション メッセージに含まれる場合があります。B1402: WCF は、シーケンス メッセージを受信する前に受信確認を生成する必要がある場合 (たとえば、
AckRequested
メッセージを満たすために)、次の例に示すように、範囲 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
要素を含むSequenceAcknowledgement
ヘッダーを生成しませんが、Nack
要素をサポートします。
WS-ReliableMessaging 障害
WS-Reliable メッセージング エラーの WCF 実装に適用される制約の一覧を次に示します。
B1501: WCF は
MessageNumberRollover
エラーを生成しません。B1502:WCF エンドポイントは、仕様で説明されているように
CreateSequenceRefused
エラーを生成する場合があります。B1503:サービス エンドポイントが接続制限に達し、新しい接続を処理できない場合、WCF は、次の例に示すように、
netrm:ConnectionLimitReached
追加のCreateSequenceRefused
障害サブコードを生成します。<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-Reliable メッセージングでは WS アドレス指定が使用されるため、WCF WS-Reliable メッセージングの実装では WS-Addressing エラーが発生する可能性があります。 このセクションでは、WCF が WS-Reliable メッセージング 層で明示的に生成する WS-Addressing エラーについて説明します。
B1601:WCF では、次のいずれかが当てはまる場合に、エラー メッセージ アドレス指定ヘッダーが必要になります。
メッセージに
Sequence
ヘッダーとAction
ヘッダーがありません。CreateSequence
メッセージにMessageId
ヘッダーがありません。CreateSequence
メッセージにReplyTo
ヘッダーがありません。
B1602:WCF は、
Sequence
ヘッダーが見つからないメッセージに応答してエラー Action Not Supported を生成し、WS-Reliable メッセージング仕様で認識されていないAction
ヘッダーを持ちます。B1603:WCF は、エンドポイントが
CreateSequence
メッセージのアドレス指定ヘッダーの検査に基づいてシーケンスを処理しないことを示すために、エラー Endpoint Unavailable を生成します。
プロトコルの構成
WS-Addressing を使用したコンポジション
WCF では、2 つのバージョンの WS-Addressing がサポートされています。WS-Addressing 2004/08 [WS-ADDR] と W3C WS-Addressing 1.0 Recommendations [WS-ADDR-CORE] と [WS-ADDR-SOAP]。
WS-Reliable メッセージングの仕様では 2004/08 WS-Addressing しか説明されていませんが、使用する WS-Addressing バージョンは制限されません。 WCF に適用される制約の一覧を次に示します。
R2101:WS-Addressing 2004/08 と WS-Addressing 1.0 の両方を、WS-Reliable メッセージングで使用できます。
R2102:WS-Addressing の単一バージョンは、特定の WS-Reliable メッセージング シーケンス全体で使用するか、
wsrm:Offer
メカニズムを使用して関連付けられた一対の逆シーケンスで使用する必要があります。
SOAP を使用したコンポジション
WCF では、WS-Reliable メッセージングでの SOAP 1.1 と SOAP 1.2 の両方の使用がサポートされています。
WS-Security と WS-SecureConversation を使用したコンポジション
WCF では、セキュリティで保護されたトランスポート (HTTPS)、WS-Security でのコンポジション、および WS-Secure Conversation を使用したコンポジションを使用して、WS-Reliable メッセージング シーケンスの保護を提供します。 WCF に適用される制約の一覧を次に示します。
R2301:個々のメッセージの整合性と機密性に加えて、WS-Reliable メッセージング シーケンスの整合性を保護するには、WCF では、WS-Secure 会話を使用する必要があります。
R2302:AWS-Secure メッセージング シーケンスを確立する前に、会話セッション WS-Reliable 確立する必要があります。
R2303: WS-Reliable メッセージング シーケンスの有効期間が WS-Secure 会話セッションの有効期間を超えた場合、WS-Secure Conversation を使用して確立された
SecurityContextToken
は、対応する WS-Secure Conversation Renewal バインディングを使用して更新する必要があります。B2304:WS-Reliable メッセージング シーケンスまたは相関する逆シーケンスのペアは、常に 1 つの WS-SecureConversation セッションにバインドされます。
WCF ソースは、
CreateSequence
メッセージの要素拡張セクションにwsse:SecurityTokenReference
要素を生成します。R2305:WS-Secure Conversation で構成されている場合、
CreateSequence
メッセージにはwsse:SecurityTokenReference
要素が含まれている必要があります。
メッセージング WS-Policy アサーションの WS-Reliable
WCF では、WS-Reliable メッセージング WS-Policy アサーション wsrm:RMAssertion
を使用して、エンドポイントの機能について説明します。 WCF に適用される制約の一覧を次に示します。
B3001: WCF は
wsrm:RMAssertion
WS-Policy アサーションをwsdl:binding
要素にアタッチします。 WCF では、wsdl:binding
要素とwsdl:port
要素の両方の添付ファイルがサポートされています。B3002: WCF では、WS-Reliable メッセージング アサーションの次の省略可能なプロパティがサポートされ、WCF でそれらのプロパティを制御できます
ReliableMessagingBindingElement
。wsrm:InactivityTimeout
wsrm:AcknowledgementInterval
以下に例を示します。
<wsrm:RMAssertion> <wsrm:InactivityTimeout Milliseconds="600000" /> <wsrm:AcknowledgementInterval Milliseconds="200" /> </wsrm:RMAssertion>
Flow Control WS-Reliable Messaging Extension
WCF では、WS-Reliable メッセージング機能拡張を使用して、シーケンス メッセージ フローをより厳密に制御するオプションを提供します。
フロー制御は、 ReliableSessionBindingElement.FlowControlEnabled プロパティを true
に設定することで有効になります。 WCF に適用される制約の一覧を次に示します。
B4001: Reliable Messaging Flow Control が有効になっている場合、WCF は、
SequenceAcknowledgement
ヘッダーの要素拡張でnetrm:BufferRemaining
要素を生成します。B4002: Reliable Messaging Flow Control が有効になっている場合、WCF では、次の例に示すように、
SequenceAcknowledgement
ヘッダーにnetrm:BufferRemaining
要素が存在する必要はありません。<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
を使用して、Reliable Messaging Destination でバッファーできる新しいメッセージの数を示します。B4004:WCF Reliable Messaging Service は、Reliable Messaging 宛先アプリケーションがメッセージを迅速に受信できない場合に送信されるメッセージの数を調整します。 Reliable Messaging 宛先はメッセージをバッファーし、要素の値は 0 に低下します。
B4005: WCF は、0 から 4096 までの
netrm:BufferRemaining
整数値を生成し、0 からxs:int
のmaxInclusive
値214748364含む整数値を読み取ります。
メッセージ交換パターン
このセクションでは、WS-Reliable メッセージングがさまざまなメッセージ交換パターンに使用される場合の WCF の動作について説明します。 メッセージ交換パターンごとに、次の 2 つの展開シナリオが考慮されます。
アドレス指定できないイニシエーター: イニシエーターはファイアウォールの内側にあります。レスポンダーは、HTTP 応答でのみイニシエーターにメッセージを配信できます。
アドレス指定可能なイニシエーター: イニシエーターとレスポンダーはどちらも HTTP 要求を送信できます。つまり、2 つの逆 HTTP 接続を確立できます。
一方向、アドレス指定できないイニシエーター
バインド
WCF は、1 つの HTTP チャネルに対して 1 つのシーケンスを使用する一方向のメッセージ交換パターンを提供します。 WCF では、HTTP 要求を使用して RMS から RMD にすべてのメッセージを送信し、HTTP 応答を使用して RMD から RMS にすべてのメッセージを送信します。
CreateSequence Exchange
WCF イニシエーターは、オファーのない CreateSequence
メッセージを生成します。 WCF レスポンダーは、シーケンスを作成する前に、 CreateSequence
にオファーがないことを確認します。 WCF レスポンダーは、CreateSequenceResponse
メッセージを使用してCreateSequence
要求に応答します。
SequenceAcknowledgement
WCF イニシエーターは、 CreateSequence
メッセージとエラー メッセージを除くすべてのメッセージの応答で受信確認を処理します。 WCF レスポンダーは、シーケンス メッセージと AckRequested
メッセージの両方への応答で、常にスタンドアロンの受信確認を生成します。
TerminateSequence メッセージ
WCF は TerminateSequence
を一方向の操作として扱います。つまり、HTTP 応答には空の本文と HTTP 202 状態コードがあります。
一方向、アドレス指定可能なイニシエーター
バインド
WCF は、受信と送信の Http チャネルに対して 1 つのシーケンスを使用して一方向のメッセージ交換パターンを提供します。 WCF では、HTTP 要求を使用してすべてのメッセージを送信します。 すべての HTTP 応答には、空の本文と HTTP 202 状態コードがあります。
CreateSequence Exchange
WCF イニシエーターは、オファーのない CreateSequence
メッセージを生成します。 WCF レスポンダーは、シーケンスを作成する前に、 CreateSequence
にオファーがないことを確認します。 WCF レスポンダーは、ReplyTo
エンドポイント参照でアドレス指定された HTTP 要求でCreateSequenceResponse
メッセージを送信します。
双方向、アドレス指定可能イニシエーター
バインド
WCF は、受信と送信の HTTP チャネルで 2 つのシーケンスを使用して、完全に非同期の双方向メッセージ交換パターンを提供します。 WCF では、HTTP 要求を使用してすべてのメッセージを送信します。 すべての HTTP 応答には、空の本文と HTTP 202 状態コードがあります。
CreateSequence Exchange
WCF イニシエーターは、オファーを含む CreateSequence
メッセージを生成します。 WCF レスポンダーは、シーケンスを作成する前に、 CreateSequence
にオファーがあることを確認します。 WCF は、CreateSequence
の ReplyTo
エンドポイント参照にアドレス指定された HTTP 要求のCreateSequenceResponse
を送信します。
シーケンスの有効期間
WCF は、2 つのシーケンスを 1 つの完全二重セッションとして扱います。
1 つのシーケンスに障害が発生するエラーを生成すると、WCF はリモート エンドポイントが両方のシーケンスをエラーすることを想定します。 1 つのシーケンスをエラーとするエラーを読み取ると、WCF は両方のシーケンスをエラーします。
WCF では、送信シーケンスを閉じ、受信シーケンスでメッセージの処理を続行できます。 逆に、WCF は受信シーケンスの終了を処理し、送信シーケンスでメッセージを送信し続けることができます。
要求/応答、アドレス指定できないイニシエーター
バインド
WCF は、1 つの HTTP チャネルに対して 2 つのシーケンスを使用して、一方向および要求/応答メッセージ交換パターンを提供します。 WCF は、HTTP 要求を使用して要求シーケンスのメッセージを送信し、HTTP 応答を使用して応答シーケンスのメッセージを送信します。
CreateSequence Exchange
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 Exchange
WCF イニシエーターは、HTTP 要求レグで空の形式の最後のメッセージを生成して送信します。 WCF では応答が必要ですが、実際の応答メッセージは無視されます。 WCF レスポンダーは、要求シーケンスの空の形式の最後のメッセージに応答し、応答シーケンスの空の形式の最後のメッセージを返します。
WCF レスポンダーが、アクション URI が http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage
されていない最後のメッセージを受信した場合、WCF は最後のメッセージで応答します。 双方向メッセージ交換プロトコルの場合、最後のメッセージはアプリケーション メッセージを伝達します。一方向メッセージ交換プロトコルの場合、最後のメッセージは空です。
WCF レスポンダーは、応答シーケンスの空の形式の最後のメッセージの受信確認を必要としません。
TerminateSequence Exchange
すべての要求が有効な応答を受信すると、WCF イニシエーターは HTTP 要求レッグで要求シーケンスの TerminateSequence
メッセージを生成して送信します。 WCF では応答が必要ですが、実際の応答メッセージは無視されます。 WCF レスポンダーは、応答シーケンスのTerminateSequence
メッセージを使用して、要求シーケンスのTerminateSequence
メッセージに応答します。
通常のシャットダウン シーケンスでは、 TerminateSequence
メッセージの両方に全範囲の SequenceAcknowledgement
が含まれます。
要求/応答、アドレス指定可能イニシエーター
バインド
WCF は、受信と送信の HTTP チャネルに対して 2 つのシーケンスを使用して、要求/応答メッセージ交換パターンを提供します。 WCF では、HTTP 要求を使用してすべてのメッセージを送信します。 すべての HTTP 応答には、空の本文と HTTP 202 状態コードがあります。
CreateSequence Exchange
WCF イニシエーターは、オファーを含む CreateSequence
メッセージを生成します。 WCF レスポンダーは、シーケンスを作成する前に、 CreateSequence
にオファーがあることを確認します。 WCF は、CreateSequence
の ReplyTo
エンドポイント参照にアドレス指定された HTTP 要求のCreateSequenceResponse
を送信します。
要求/応答の関連付け
WCF イニシエーターは、すべてのアプリケーション要求メッセージが MessageId
と ReplyTo
エンドポイント参照を持っていることを確認します。 WCF イニシエーターは、各アプリケーション要求メッセージに CreateSequence
メッセージの ReplyTo
エンドポイント参照を適用します。 WCF レスポンダーでは、受信要求メッセージに MessageId
と ReplyTo
が必要です。 WCF レスポンダーは、 CreateSequence
とすべてのアプリケーション要求メッセージの両方のエンドポイント参照の URI が同一であることを確認します。