Zuverlässiges Messaging-Protokoll, Version 1,1Reliable Messaging Protocol version 1.1

Dieses Thema enthält Details zur Implementierung der Windows Communication Foundation (WCF) für die WS-ReliableMessaging-Version von Februar 2007 (Version 1.1)-Protokoll für die Interoperation mithilfe des HTTP-Transports erforderlich.This topic covers Windows Communication Foundation (WCF) implementation details for the WS-ReliableMessaging February 2007 (version 1.1) protocol necessary for interoperation using the HTTP transport. WCF folgt die WS-ReliableMessaging-Spezifikation mit den Einschränkungen und klarstellungen erläutert, die in diesem Thema.WCF follows the WS-ReliableMessaging specification with the constraints and clarifications explained in this topic. Beachten Sie, dass das zuverlässige WS-Messaging-Protokoll in der Version 1.1 ab .NET Framework Version 3.5.NET Framework version 3.5 implementiert ist.Note that the WS-ReliableMessaging version 1.1 protocol is implemented starting with the .NET Framework Version 3.5.NET Framework version 3.5.

Die WS-ReliableMessaging-Version von Februar 2007 Protokoll wird in WCF von implementiert die ReliableSessionBindingElement.The WS-ReliableMessaging February 2007 protocol is implemented in WCF by the ReliableSessionBindingElement.

Der Einfachheit halber verwendet dieses Thema die folgenden Rollen:For convenience, the topic uses the following roles:

  • Initiator: der Client, der die Erstellung der zuverlässigen WS-Messaging-Sequenz initiiertInitiator: The client that initiates WS-Reliable Message sequence creation.

  • Beantworter: der Dienst, der die Anforderungen des Initiators empfängtResponder: The service that receives the initiator's requests.

In diesem Dokument werden die in der folgenden Tabelle aufgeführten Präfixe und Namespaces verwendet.This document uses the prefixes and namespaces in the following table.

PräfixPrefix NamespaceNamespace
wsrmwsrm http://docs.oasis-open.org/ws-rx/wsrm/200702
netrmnetrm http://schemas.microsoft.com/ws/2006/05/rm
ss http://www.w3.org/2003/05/soap-envelope
wsawsa http://schemas.xmlsoap.org/ws/2005/08/addressing
wssewsse http://docs.oasis-open.org/wss/2004/01/oasis-200401-wssecurity-secext-1.0.xsd
wsrmpwsrmp http://docs.oasis-open.org/ws-rx/wsrmp/200702
netrmpnetrmp http://schemas.microsoft.com/ws-rx/wsrmp/200702
wspwsp (Entweder WS-Policy 1.2 oder WS-Policy 1.5)(Either WS-Policy 1.2 or WS-Policy 1.5)

MessagingMessaging

SequenzerstellungSequence Creation

WCF implementiert CreateSequence und CreateSequenceResponse Sequenz von Nachrichten an ein zuverlässiges messaging herstellen.WCF implements CreateSequence and CreateSequenceResponse messages to establish a reliable messaging sequence. Es gelten die folgenden Einschränkungen:The following constraints apply:

  • B1101: Der Initiator WCF verwendet den gleichen Endpunktverweis als die CreateSequence Nachricht ReplyTo, AcksTo und Offer/Endpoint.B1101: The WCF Initiator uses the same endpoint reference as the CreateSequence message’s ReplyTo, AcksTo and Offer/Endpoint.

  • R1102: Die AcksTo-, ReplyTo- und Offer/Endpoint-Endpunktverweise in der CreateSequence-Nachricht müssen über Adresswerte mit identischen Zeichenfolgendarstellungen verfügen, die sich oktettweise entsprechen.R1102: The AcksTo, ReplyTo and Offer/Endpoint endpoint references in the CreateSequence message must have address values with identical string representations such that they match the octet-wise.

    • Der WCF-Beantworter stellt sicher, dass der URI-Teil der AcksTo, ReplyTo und Endpoint Endpunktverweise identisch sind, vor dem Erstellen einer Sequenz.The WCF Responder verifies that the URI portion of the AcksTo, ReplyTo and Endpoint endpoint references are identical before creating a sequence.
  • R1103: Die AcksTo- und ReplyTo und Offer/Endpoint-Endpunktverweise in der CreateSequence-Nachricht müssen den gleichen Satz an Verweisparametern aufweisen.R1103: The AcksTo, ReplyTo and Offer/Endpoint endpoint references in the CreateSequence message should have the same set of reference parameters.

    • WCF wird nicht erzwungen, sondern setzt voraus, die auf Parameter von der AcksTo, ReplyTo und Offer/Endpoint -Endpunktverweise für CreateSequence identisch sind und verwendet Verweisparameter vom die ReplyTo -Endpunktverweis für Bestätigungen und Nachrichten umgekehrter Sequenz.WCF does not enforce, but assumes that reference parameters of the AcksTo, ReplyTo and Offer/Endpoint endpoint references on CreateSequence are identical and uses reference parameters from the ReplyTo endpoint reference for acknowledgements and converse sequence messages.
  • B1104: Der WCF-Initiator generiert nicht das optionale Expires oder Offer/Expires Element in der CreateSequence Nachricht.B1104: The WCF Initiator does not generate the optional Expires or Offer/Expires element in the CreateSequence message.

  • B1105: Beim Zugriff auf die CreateSequence Nachricht, die WCF-Antwortdienst verwendet die Expires Wert in der CreateSequence Element als der Expires Wert in der CreateSequenceResponse Element.B1105: When accessing the CreateSequence message, the WCF Responder uses the Expires value in the CreateSequence element as the Expires value in the CreateSequenceResponse element. Andernfalls der WCF-Beantworter liest und ignoriert die Expires und Offer/Expires Werte.Otherwise, the WCF Responder reads and ignores the Expires and Offer/Expires values.

  • B1106: Beim Zugriff auf die CreateSequenceResponse Nachricht, die WCF-Initiator liest das optionale Expires Wert aber nicht verwendet.B1106: When accessing the CreateSequenceResponse message, the WCF Initiator reads the optional Expires value but does not use it.

  • B1107: Der WCF-Initiator und Beantworter generieren immer das optionale IncompleteSequenceBehavior Element in der CreateSequence/Offer und CreateSequenceResponse Elemente.B1107: The WCF Initiator and Responder always generate the optional IncompleteSequenceBehavior element in the CreateSequence/Offer and CreateSequenceResponse elements.

  • B1108: WCF verwendet nur den DiscardFollowingFirstGap und NoDiscard Werte in der IncompleteSequenceBehavior Element.B1108: WCF uses only the DiscardFollowingFirstGap and NoDiscard values in the IncompleteSequenceBehavior element.

    • Zuverlässiges WS-Messaging verwendet den Offer-Mechanismus, um die beiden umgekehrt korrelierten Sequenzen einzurichten, die eine Sitzung bilden.WS-ReliableMessaging utilizes the Offer mechanism to establish the two converse correlated sequences that form a session.
  • B1109: Wenn CreateSequence enthält ein Offer Element, lehnt die unidirektionalen WCF-Beantworter die angebotene Sequenz indem er mit einem CreateSequenceResponse ohne eine Accept Element.B1109: If CreateSequence contains an Offer element, the one way WCF Responder rejects the offered sequence by responding with a CreateSequenceResponse without an Accept element.

  • B1110: Wenn eine zuverlässige Messaging-Beantworter die angebotene Sequenz zurückweist, einem Fehler in der WCF-Initiator die neu eingerichtete Sequenz.B1110: If a Reliable Messaging Responder rejects the offered sequence, the WCF Initiator faults the newly established sequence.

  • B1111: Wenn CreateSequence enthält kein Offer Element, lehnt der bidirektionalen WCF-Beantworter die angebotene Sequenz indem er mit einem CreateSequenceRefused Fehler.B1111: If CreateSequence does not contain an Offer element, the two-way WCF Responder rejects the offered sequence by responding with a CreateSequenceRefused fault.

  • R1112: Wenn mithilfe des Offer-Mechanismus zwei umgekehrte Sequenzen erstellt werden, muss die [address]-Eigenschaft des CreateSequenceResponse/Accept/AcksTo-Endpunktverweises mit dem Ziel-URI der CreateSequence-Nachricht Byte für Byte übereinstimmen.R1112: When two converse sequences are established using the Offer mechanism, the [address] property of the CreateSequenceResponse/Accept/AcksTo endpoint reference must match the destination URI of the CreateSequence message byte for byte.

  • R1113: Wenn mithilfe des Offer-Mechanismus zwei umgekehrte Sequenzen erstellt werden, müssen alle Nachrichten in beiden Sequenzen, die vom Initiator an den Beantworter übermittelt werden, an den gleichen Endpunktverweis gesendet werden.R1113: When two converse sequences are established using the Offer mechanism, all messages on both sequences flowing from the Initiator to the Responder must be sent to the same endpoint reference.

WS-ReliableMessaging wird von WCF verwendet, um zuverlässige Sitzungen zwischen dem Initiator und Beantworter einzurichten.WCF uses WS-ReliableMessaging to establish reliable sessions between the Initiator and the Responder. Die WCF-WS-ReliableMessaging-Implementierung bietet eine zuverlässige Sitzung für unidirektionale, Anforderung-Antwort- und Vollduplex-Nachrichtenmuster.The WCF WS-ReliableMessaging implementation provides a reliable session for one-way, request-reply and full duplex messaging patterns. Der Offer-Mechanismus von zuverlässigem WS-Messaging für CreateSequence und CreateSequenceResponse ermöglicht es Ihnen, zwei umgekehrt korrelierte Sequenzen zu erstellen, und bietet ein für alle Nachrichtenendpunkte geeignetes Sitzungsprotokoll.The WS-ReliableMessaging Offer mechanism on CreateSequence and CreateSequenceResponse lets you establish two correlated converse sequences and provides a session protocol that is suitable for all message endpoints. Da WCF eine Sicherheitsgarantie für solcher Sitzungen sowie End-to-End-Schutz bietet, ist es ratsam, um sicherzustellen, dass Nachrichten für den gleichen Teilnehmer am selben Ziel ankommen.Because WCF provides a security guarantee for such a session including end-to-end protection for session integrity, it is practical to ensure that messages intended for the same party arrive at the same destination. Dadurch wird es zudem ermöglicht, Sequenzbestätigungen im Piggyback-Verfahren mit Anwendungsnachrichten zu übermitteln.This also allows "piggy-backing" of sequence acknowledgements on application messages. Daher gelten Einschränkungen R1102 R1112 und R1113 für WCF.Therefore, constraints R1102, R1112, and R1113 apply to WCF.

Ein Beispiel für eine CreateSequence-Nachricht.An example of a CreateSequence message.

<s:Envelope>  
  <s:Header>  
    <wsa:Action s:mustUnderstand="1">http://docs.oasis-open.org/ws-rx/wsrm/200702/CreateSequence</wsa:Action>  
    <wsa:MessageID>urn:uuid:949cca61-8813-42ff-ab33-18d9e3fa82fa</wsa:MessageID>  
    <wsa:ReplyTo>  
        <wsa:Address>http://Business456.com/clientA</wsa:Address>   
    </wsa:ReplyTo>  
    <wsa:To s:mustUnderstand="1">http://BusinessABC.com/serviceA</wsa: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:066b4730-fc82-458a-a5c1-210be4fb4e4e</wsrm:Identifier>  
        <wsrm:Endpoint>  
          <wsa:Address>http://Business456.com/clientA</wsa:Address>  
        </wsrm:Endpoint>  
        <wsrm:IncompleteSequenceBehavior>DiscardFollowingFirstGap</wsrm:IncompleteSequenceBehavior>  
      </wsrm:Offer>  
    </wsrm:CreateSequence>  
  </s:Body>  
</s:Envelope>  

Ein Beispiel für eine CreateSequenceResponse-Nachricht.An example of a CreateSequenceResponse message.

<s:Envelope>  
  <s:Header>  
    <wsa:Action s:mustUnderstand="1">http://docs.oasis-open.org/ws-rx/wsrm/200702/CreateSequenceResponse</wsa:Action>  
    <wsa:RelatesTo>urn:uuid:949cca61-8813-42ff-ab33-18d9e3fa82fa</wsa:RelatesTo>  
    <wsa:To s:mustUnderstand="1">http://Business456.com/clientA</wsa:To>  
  </s:Header>  
  <s:Body>  
    <wsrm:CreateSequenceResponse>  
      <wsrm:Identifier>urn:uuid:656652b8-9af2-4e94-9d07-2dc21c05ed27</wsrm:Identifier>  
      <wsrm:IncompleteSequenceBehavior>DiscardFollowingFirstGap</wsrm:IncompleteSequenceBehavior>  
      <wsrm:Accept>  
        <wsrm:AcksTo>  
          <wsa:Address>http://BusinessABC.com/serviceA</wsa:Address>  
        </wsrm:AcksTo>  
      </wsrm:Accept>  
    </wsrm:CreateSequenceResponse>  
  </s:Body>  
</s:Envelope>  

Schließen einer SequenzClosing a Sequence

WCF verwendet die CloseSequence und CloseSequenceResponse Nachrichten für eine zuverlässige Messaging-Quelle initiierte schließen durchzuführen.WCF uses the CloseSequence and CloseSequenceResponse messages for a Reliable Messaging source-initiated shutdown. Das WCF zuverlässige Messaging-Ziel initiiert das Schließen nicht, und der WCF Reliable Messaging-Quelle unterstützt keine zuverlässige Messaging-Ziel Herunterfahren durch einen.The WCF Reliable Messaging destination does not initiate shutdown and the WCF Reliable Messaging source does not support a Reliable Messaging destination-initiated shutdown. Es gelten die folgenden Einschränkungen:The following constraints apply:

  • B1201: Die WCF Reliable Messaging-Quelle sendet immer eine CloseSequence Nachricht, um die Sequenz zu schließen.B1201: The WCF Reliable Messaging source always sends a CloseSequence message to shut down the sequence.

  • B1202: Die zuverlässige Messaging-Quelle wartet auf die Bestätigung aller Sequenznachrichten, bevor sie die CloseSequence-Nachricht sendet.B1202: The Reliable Messaging source waits for acknowledgement of the full range of sequence messages before sending the CloseSequence message.

  • B1203: Die zuverlässige Messaging-Quelle fügt immer das optionale LastMsgNumber-Element ein, es sei denn, die Sequenz enthält keine Nachrichten.B1203: The Reliable Messaging source always includes the optional LastMsgNumber element unless the sequence does not contain messages.

  • R1204: Das zuverlässige Messaging-Ziel darf das Schließen nicht durch Senden einer CloseSequence-Nachricht initiieren.R1204: The Reliable Messaging destination must not initiate shutdown by sending a CloseSequence message.

  • B1205: bei Empfang einer CloseSequence Nachricht, die WCF Reliable Messaging-Quelle die Sequenz als unvollständig und sendet einen Fehler.B1205: Upon receiving a CloseSequence message, the WCF Reliable Messaging source considers the sequence incomplete and sends a fault.

Ein Beispiel für eine CloseSequence-Nachricht.An example of a CloseSequence message.

<s:Envelope>  
  <s:Header>  
    <wsa:Action s:mustUnderstand="1">http://docs.oasis-open.org/ws-rx/wsrm/200702/CloseSequence</wsa:Action>  
    <wsa:MessageID>urn:uuid:6ce1d4c3-e1c1-474f-a8c9-4210e37f7877</wsa:MessageID>  
    <wsa:ReplyTo>  
      <wsa:Address>http://Business456.com/clientA</wsa:Address>  
    </wsa:ReplyTo>  
    <wsa:To s:mustUnderstand="1">http://BusinessABC.com/serviceA</wsa:To>  
  </s:Header>  
  <s:Body>  
    <wsrm:CloseSequence>  
      <wsrm:Identifier>urn:uuid:656652b8-9af2-4e94-9d07-2dc21c05ed27</wsrm:Identifier>  
      <wsrm:LastMsgNumber>30</wsrm:LastMsgNumber>  
    </wsrm:CloseSequence>  
  </s:Body>  
</s:Envelope>  
Example CloseSequenceResponse message:  
<s:Envelope>  
  <s:Header>  
    <wsrm:SequenceAcknowledgement>  
      <wsrm:Identifier>urn:uuid:656652b8-9af2-4e94-9d07-2dc21c05ed27</wsrm:Identifier>  
      <wsrm:AcknowledgementRange Lower="1" Upper="30"></wsrm:AcknowledgementRange>  
      <wsrm:Final></wsrm:Final>  
      <netrm:BufferRemaining>8</netrm:BufferRemaining>  
    </wsrm:SequenceAcknowledgement>  
    <wsa:Action s:mustUnderstand="1">http://docs.oasis-open.org/ws-rx/wsrm/200702/CloseSequenceResponse</wsa:Action>  
    <wsa:RelatesTo>urn:uuid:6ce1d4c3-e1c1-474f-a8c9-4210e37f7877</wsa:RelatesTo>  
    <wsa:To s:mustUnderstand="1">http://Business456.com/clientA</wsa:To>  
  </s:Header>  
  <s:Body>  
    <wsrm:CloseSequenceResponse>  
      <wsrm:Identifier>urn:uuid:656652b8-9af2-4e94-9d07-2dc21c05ed27</wsrm:Identifier>  
    </wsrm:CloseSequenceResponse>  
  </s:Body>  
</s:Envelope>  

SequenzbeendigungSequence Termination

WCF verwendet hauptsächlich die TerminateSequence/TerminateSequenceResponse Handshake nach Abschluss der CloseSequence/CloseSequenceResponse Handshake.WCF primarily uses the TerminateSequence/TerminateSequenceResponse handshake after completing the CloseSequence/CloseSequenceResponse handshake. Das WCF zuverlässige Messaging-Ziel initiiert die Beendigung nicht, und die zuverlässige Messaging-Quelle unterstützt keine zuverlässige Messaging-Ziel initiiert beenden.The WCF Reliable Messaging destination does not initiate termination and the Reliable Messaging source does not support a Reliable Messaging destination-initiated termination. Es gelten die folgenden Einschränkungen:The following constraints apply:

  • B1301: Der WCF--Initiator schickt die TerminateSequence Nachricht nach dem erfolgreichen Abschluss der CloseSequence/CloseSequenceResponse Handshake.B1301: The WCF Initiator only sends the TerminateSequence message after the successful completion of the CloseSequence/CloseSequenceResponse handshake.

  • R1302: WCF überprüft, ob die LastMsgNumber -Element ist konsistent in allen CloseSequence und TerminateSequence Nachrichten für eine bestimmte Sequenz.R1302: WCF validates that the LastMsgNumber element is consistent across all CloseSequence and TerminateSequence messages for a given sequence. Das bedeutet, dass LastMsgNumber entweder in keiner CloseSequence-Nachricht und keiner TerminateSequence-Nachricht vorhanden ist oder in allen CloseSequence-Nachrichten und TerminateSequence-Nachrichten vorhanden und identisch ist.This means that LastMsgNumber is either not present on all CloseSequence and TerminateSequence messages, or it is present and identical on all CloseSequence and TerminateSequence messages.

  • B1303: Bei Empfang einer TerminateSequence-Nachricht nach dem CloseSequence/CloseSequenceResponse-Handshake antwortet das zuverlässige Messaging-Ziel mit einer TerminateSequenceResponse-Nachricht.B1303: When receiving a TerminateSequence message after the CloseSequence/CloseSequenceResponse handshake, the Reliable Messaging destination responds with a TerminateSequenceResponse message. Da die zuverlässige Messaging-Quelle die TerminateSequence-Nachricht erst nach Erhalt der letzten Bestätigung sendet, weiß das zuverlässige Messaging-Ziel mit Sicherheit, dass die Sequenz beendet ist, und fordert die Ressourcen unverzüglich zurück.Because the Reliable Messaging source has the final acknowledgement before sending the TerminateSequence message, the Reliable Messaging destination knows without doubt that the sequence ends, and reclaims resources immediately.

  • B1304: Beim Empfang von einer TerminateSequence -Nachricht vor der CloseSequence/CloseSequenceResponse -Handshakes stellt das WCF zuverlässige Messaging-Ziel antwortet mit einer TerminateSequenceResponse Nachricht.B1304: When receiving a TerminateSequence message prior to the CloseSequence/CloseSequenceResponse handshake, the WCF Reliable Messaging destination responds with a TerminateSequenceResponse message. Wenn das zuverlässige Messaging-Ziel ermittelt, dass die Sequenz keine Inkonsistenzen aufweist, wartet das zuverlässige Messaging-Ziel so lange, wie vom Anwendungsziel angegeben, bevor es die Ressourcen zurückverlangt, um es dem Client zu ermöglichen, die letzte Bestätigung zu empfangen.If the Reliable Messaging destination determines that there are no inconsistencies in the sequence, the Reliable Messaging destination waits for an application destination-specified time before reclaiming resources, to allow the client the chance to receive the final acknowledgement. Anderenfalls fordert das zuverlässige Messaging-Ziel die Ressourcen unverzüglich zurück und teilt dem Anwendungsziel mit, dass die Sequenz nicht ordnungsgemäß beendet wurde, indem es das Faulted-Ereignis auslöst.Otherwise, the Reliable Messaging destination reclaims resources immediately and indicates to the application destination that the sequence ends with doubt by raising the Faulted event.

Ein Beispiel für eine TerminateSequence-Nachricht.An example of a TerminateSequence message.

<s:Envelope>  
  <s:Header>  
    <wsa:Action s:mustUnderstand="1">http://docs.oasis-open.org/ws-rx/wsrm/200702/TerminateSequence</wsa:Action>  
    <wsa:MessageID>urn:uuid:3597a398-4f3c-40f4-9335-8f1515572fdf</wsa:MessageID>  
    <wsa:ReplyTo>  
      <wsa:Address>http://Business456.com/clientA</wsa:Address>  
    </wsa:ReplyTo>  
    <wsa:To s:mustUnderstand="1">http://BusinessABC.com/serviceA</wsa:To>  
  </s:Header>  
  <s:Body>  
    <wsrm:TerminateSequence>  
      <wsrm:Identifier>urn:uuid:656652b8-9af2-4e94-9d07-2dc21c05ed27</wsrm:Identifier>  
      <wsrm:LastMsgNumber>30</wsrm:LastMsgNumber>  
      </wsrm:TerminateSequence>  
  </s:Body>  
</s:Envelope>  
Example TerminateSequenceResponse message:  
<s:Envelope>  
  <s:Header>  
    <wsrm:SequenceAcknowledgement>  
      <wsrm:Identifier>urn:uuid:656652b8-9af2-4e94-9d07-2dc21c05ed27</wsrm:Identifier>  
      <wsrm:AcknowledgementRange Lower="1" Upper="30"></wsrm:AcknowledgementRange>  
      <wsrm:Final></wsrm:Final>  
      <netrm:BufferRemaining>8</netrm:BufferRemaining>  
    </wsrm:SequenceAcknowledgement>  
    <wsa:Action s:mustUnderstand="1">http://docs.oasis-open.org/ws-rx/wsrm/200702/TerminateSequenceResponse</wsa:Action>  
    <wsa:RelatesTo>urn:uuid:3597a398-4f3c-40f4-9335-8f1515572fdf</wsa:RelatesTo>  
    <wsa:To s:mustUnderstand="1">://Business456.com/clientA</wsa:To>  
  </s:Header>  
  <s:Body>  
    <wsrm:TerminateSequenceResponse>  
      <wsrm:Identifier>urn:uuid:656652b8-9af2-4e94-9d07-2dc21c05ed27</wsrm:Identifier>  
    </wsrm:TerminateSequenceResponse>  
  </s:Body>  
</s:Envelope>  

SequenzenSequences

Die folgende Liste enthält die Einschränkungen, die für Sequenzen gelten:The following is a list of constraints that apply to sequences:

  • B1401:WCF generiert und greift auf-Sequenznummern nicht höher als xs:longdes inklusive Maximalwert 9223372036854775807.B1401:WCF generates and accesses sequence numbers no higher than xs:long’s maximum inclusive value, 9223372036854775807.

Ein Beispiel für einen Sequence-Header.An example of a Sequence header.

<wsrm:Sequence s:mustUnderstand="1">  
  <wsrm:Identifier>urn:uuid:656652b8-9af2-4e94-9d07-2dc21c05ed27</wsrm:Identifier>  
  <wsrm:MessageNumber>1</wsrm:MessageNumber>  
</wsrm:Sequence>  

Anfordern einer BestätigungRequest Acknowledgement

WCF verwendet die AckRequested -Header als Keep-alive-Mechanismus.WCF uses the AckRequested header as a keep-alive mechanism.

Ein Beispiel für einen AckRequested-Header.An example of an AckRequested header.

<wsrm:AckRequested>  
  <wsrm:Identifier>urn:uuid:656652b8-9af2-4e94-9d07-2dc21c05ed27</wsrm:Identifier>  
</wsrm:AckRequested>  

SequenceAcknowledgementSequenceAcknowledgement

WCF verwendet einen "Zusatz"-Mechanismus für die WS-Reliable Messaging bereitgestellten sequenzbestätigungen.WCF uses a "piggy-back" mechanism for sequence acknowledgements provided in WS-Reliable Messaging. Es gelten die folgenden Einschränkungen:The following constraints apply:

  • R1601: Wenn zwei umgekehrte Sequenzen eingerichtet sind mit den Offer Mechanismus, der SequenceAcknowledgement Header kann in jeder an den beabsichtigten Empfänger Anwendungsnachricht aufgenommen werden.R1601: When two converse sequences are established using the Offer mechanism, the SequenceAcknowledgement header may be included in any application message transmitted to the intended recipient. Der Remoteendpunkt muss in der Lage sein, auf einen per Piggyback-Verfahren gesendeten SequenceAcknowledgement-Header zuzugreifen.The remote endpoint must be able to access a piggybacked SequenceAcknowledgement header.

  • B1602: WCF löst keine SequenceAcknowledgement Header, die enthalten Nack Elemente.B1602: WCF does not generate SequenceAcknowledgement headers that contain Nack elements. WCF überprüft, ob jedes Nack Element enthält eine Sequenznummer, jedoch andernfalls ignoriert die Nack Element und Wert.WCF validates that each Nack element contains a sequence number, but otherwise ignores the Nack element and value.

Ein Beispiel für einen SequenceAcknowledgement-Header.An example of a SequenceAcknowledgement header.

<wsrm:SequenceAcknowledgement>  
  <wsrm:Identifier>urn:uuid:656652b8-9af2-4e94-9d07-2dc21c05ed27</wsrm:Identifier>  
  <wsrm:AcknowledgementRange Lower="1" Upper="1"></wsrm:AcknowledgementRange>  
</wsrm:SequenceAcknowledgement>  

WS-ReliableMessaging-FehlerWS-ReliableMessaging Faults

Im folgenden wird eine Liste der Einschränkungen, die für die WCF-Implementierung des WS-ReliableMessaging-Fehler gelten.The following is a list of constraints that apply to the WCF implementation of WS-ReliableMessaging faults. Es gelten die folgenden Einschränkungen:The following constraints apply:

  • B1701: WCF löst keine MessageNumberRollover Fehler.B1701: WCF does not generate MessageNumberRollover faults.

  • B1702: Über SOAP 1.2, wenn der Dienstendpunkt seine Verbindungsgrenze erreicht und keine weiteren Verbindungen verarbeiten WCF generiert eine geschachtelte CreateSequenceRefused -Fehlersubcode netrm:ConnectionLimitReached, wie im folgenden Beispiel gezeigt.B1702: Over SOAP 1.2, when the service endpoint reaches its connection limit and cannot process new connections, WCF generates a nested CreateSequenceRefused fault subcode, netrm:ConnectionLimitReached, as shown in the following example.

<s:Envelope>  
  <s:Header>  
    <wsa:Action>http://docs.oasis-open.org/ws-rx/wsrm/200702/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">Server 'http://BusinessABC.com/serviceA' is too busy to process this request. Try again later.</s:Text>  
      </s:Reason>  
    </s:Fault>  
  </s:Body>  
</s:Envelope>  

WS-AdressierungsfehlerWS-Addressing Faults

Da WS-ReliableMessaging WS-Adressierung verwendet wird, kann die WCF-WS-ReliableMessaging-Implementierung generieren und Übertragen von WS-Adressierungsfehler.Because WS-ReliableMessaging uses WS-Addressing, the WCF WS-ReliableMessaging implementation may generate and transmit WS-Addressing faults. Dieser Abschnitt behandelt die WS-Adressierungsfehler, die WCF explizit generiert und überträgt an der WS-ReliableMessaging-Schicht an:This section covers the WS-Addressing faults that WCF explicitly generates and transmits at the WS-ReliableMessaging layer:

  • B1801:WCF generiert und überträgt die Message Addressing Header Required fehl, wenn eine der folgenden Aussagen zutrifft:B1801:WCF generates and transmits the Message Addressing Header Required fault when one of the following is true:

    • Bei einer Nachricht vom Typ CreateSequence, CloseSequence oder TerminateSequence fehlt ein MessageId-Header.A CreateSequence, CloseSequence or TerminateSequence message is missing a MessageId header.

    • Bei einer Nachricht vom Typ CreateSequence, CloseSequence oder TerminateSequence fehlt ein ReplyTo-Header.A CreateSequence, CloseSequence or TerminateSequence message is missing a ReplyTo header.

    • Bei einer Nachricht vom Typ CreateSequenceResponse, CloseSequenceResponse oder TerminateSequenceResponse fehlt ein RelatesTo-Header.A CreateSequenceResponse, CloseSequenceResponse, or TerminateSequenceResponse message is missing a RelatesTo header.

  • B1802:WCF generiert und überträgt die Endpoint Unavailable Fehler, um anzugeben, dass es kein Endpunkt gelauscht, die die Sequenz basierend auf der Prüfung der Adressierungsheader in verarbeiten kann die CreateSequence Nachricht.B1802:WCF generates and transmits the Endpoint Unavailable fault to indicate there is no endpoint listening that can process the sequence based on examination of the addressing headers in the CreateSequence message.

ProtokollkompositionProtocol Composition

Komposition mit WS-AdressierungComposition with WS-Addressing

WCF unterstützt zwei Versionen der WS-Adressierung: WS-Adressierung 2004/08 [WS-ADDR] und W3C WS-Adressierung 1.0 Empfehlungen [WS-ADDR-CORE] und [WS-ADDR-SOAP].WCF supports two versions of WS-Addressing: WS-Addressing 2004/08 [WS-ADDR] and W3C WS-Addressing 1.0 Recommendations [WS-ADDR-CORE] and [WS-ADDR-SOAP].

Zwar erwähnt die WS-ReliableMessaging-Spezifikation nur die WS-Adressierung 2004/08, schränkt jedoch die Verwendung der WS-Adressierung nicht auf diese Version ein.While the WS-ReliableMessaging specification mentions only WS-Addressing 2004/08, it does not restrict the WS-Addressing version to be used. Im folgenden finden eine Liste der Einschränkungen, die für WCF gelten:The following is a list of constraints that apply to WCF:

  • R2101: Sowohl WS-Adressierung 2004/08 als auch WS-Adressierung 1.0 können mit zuverlässigem WS-Messaging verwendet werden.R2101: Both WS-Addressing 2004/08 and WS-Addressing 1.0 can be used with WS-Reliable Messaging.

  • R2102: Für eine gegebene WS-ReliableMessaging-Sequenz oder ein Paar umgekehrter Sequenzen, die mithilfe des Offer-Mechanismus korreliert wurden, darf nur eine Version der WS-Adressierung verwendet werden.R2102: A single version of WS-Addressing must be used throughout a given WS-ReliableMessaging sequence or a pair of converse sequences correlated by using the Offer mechanism.

Komposition mit SOAPComposition with SOAP

WCF unterstützt die Verwendung von SOAP 1.1 und SOAP 1.2 mit zuverlässigem WS-Messaging.WCF supports the use of both SOAP 1.1 and SOAP 1.2 with WS-Reliable Messaging.

Komposition mit WS-Sicherheit und WS-SecureConversationComposition with WS-Security and WS-SecureConversation

WCF bietet Schutz für WS-ReliableMessaging-Sequenzen durch Verwenden von sicheren Transportmethode (HTTPS), Komposition mit WS-Security und Komposition mit WS-Secure Conversation.WCF provides protection for WS-ReliableMessaging sequences by using secure Transport (HTTPS), composition with WS-Security, and composition with WS-Secure Conversation. Das WS-ReliableMessaging 1.1-Protokoll, das WS-Security 1.1- und das WS-Secure Conversation 1.3-Protokoll sollten zusammen verwendet werden.The WS-ReliableMessaging 1.1 protocol, WS-Security 1.1 and WS-Secure Conversation 1.3 protocol should be used together. Im folgenden finden eine Liste der Einschränkungen, die für WCF gelten:The following is a list of constraints that apply to WCF:

  • R2301: Um die Integrität einer WS-ReliableMessaging-Sequenz neben der Integrität und Vertraulichkeit einzelner Nachrichten zu schützen, muss WCF WS-Secure Conversation verwendet werden muss.R2301: To protect the integrity of a WS-ReliableMessaging sequence in addition to the integrity and confidentiality of individual messages, WCF requires that WS-Secure Conversation must be used.

  • R2302:AWS-Secure Conversation-Sitzung muss vor dem Einrichten von WS-ReliableMessaging Sequence(s) eingerichtet werden.R2302:AWS-Secure Conversation session must be established prior to establishing WS-ReliableMessaging sequence(s).

  • R2303: Wenn die Lebensdauer einer WS-ReliableMessaging-Sequenz die Lebensdauer der WS-SecureConversation-Sitzung überschreitet, muss das mithilfe von WS-Secure Conversation eingerichtete SecurityContextToken unter Verwendung der entsprechenden WS-SecureConversationRenewal-Bindung erneuert werden.R2303: If the WS-ReliableMessaging sequence lifetime exceeds the WS-Secure Conversation session’s lifetime, the SecurityContextToken established by using WS-Secure Conversation must be renewed by using the corresponding WS-Secure Conversation Renewal binding.

  • B2304:WS-ReliableMessaging-Sequenz oder ein paar umgekehrt korrelierte Sequenzen immer an eine einzelne WS-SecureConversation-Sitzung gebunden sind.B2304:WS-ReliableMessaging sequence or a pair of correlated converse sequences are always bound to a single WS-SecureConversation session.

  • R2305: Wenn mit WS-Secure Conversation ItemsControl-Element, das WCF-Beantworter erfordert, dass die CreateSequence Nachricht enthält die wsse:SecurityTokenReference Element und der wsrm:UsesSequenceSTR Header.R2305: When composed with WS-Secure Conversation, the WCF responder requires that the CreateSequence message contain the wsse:SecurityTokenReference element and the wsrm:UsesSequenceSTR header.

Ein Beispiel für einen UsesSequenceSTR-Header.An example of a UsesSequenceSTR header.

<wsrm:UsesSequenceSTR></wsrm:UsesSequenceSTR>  

Komposition mit SSL/TLS-SitzungenComposition with SSL/TLS sessions

WCF unterstützt keine Komposition mit SSL/TLS-Sitzungen:WCF does not support composition with SSL/TLS sessions:

  • B2401: WCF generiert nicht das wsrm:UsesSequenceSSL Header.B2401: WCF does not generate the wsrm:UsesSequenceSSL header.

  • R2402: Ein zuverlässiger Messaging-Initiator muss nicht senden eine CreateSequence -Nachricht mit einem wsrm:UsesSequenceSSL Header an einen WCF-Antwortdienst.R2402: A Reliable Messaging Initiator must not send a CreateSequence message with a wsrm:UsesSequenceSSL header to a WCF Responder.

Komposition mit WS-PolicyComposition with WS-Policy

WCF unterstützt zwei Versionen der WS-Policy: WS-Policy 1.2 und WS-Policy 1.5.WCF supports two versions of WS-Policy: WS-Policy 1.2 and WS-Policy 1.5.

WS-ReliableMessaging WS-RichtlinienassertionWS-ReliableMessaging WS-Policy Assertion

WCF verwendet die WS-ReliableMessaging WS-Richtlinienassertion wsrm:RMAssertion Fähigkeiten von Endpunkten zu beschreiben.WCF uses WS-ReliableMessaging WS-Policy Assertion wsrm:RMAssertion to describe endpoints capabilities. Im folgenden finden eine Liste der Einschränkungen, die für WCF gelten:The following is a list of constraints that apply to WCF:

  • B3001: WCF fügt wsrmn:RMAssertion WS-Richtlinienassertion an wsdl:binding Elemente.B3001: WCF attaches wsrmn:RMAssertion WS-Policy Assertion to wsdl:binding elements. WCF unterstützt beide Anlagen wsdl:binding und wsdl:port Elemente.WCF supports both attachments to wsdl:binding and wsdl:port elements.

  • B3002: WCF generiert, die nie die wsp:Optional Tag.B3002: WCF never generates the wsp:Optional tag.

  • B3003: Beim Zugriff auf die wsrmp:RMAssertion WS-Policy-Assertion WCF ignoriert den wsp:Optional -Tag und behandelt die WS-RM-Richtlinie als obligatorisch.B3003: When accessing the wsrmp:RMAssertion WS-Policy Assertion, WCF ignores the wsp:Optional tag and treats the WS-RM policy as mandatory.

  • R3004: Da WCF nicht mit SSL/TLS-Sitzungen zu verfassen, WCF akzeptiert keine Richtlinie mit wsrmp:SequenceTransportSecurity.R3004: Because WCF does not compose with SSL/TLS sessions, WCF does not accept policy that specifies wsrmp:SequenceTransportSecurity.

  • B3005: Immer WCF generiert das wsrmp:DeliveryAssurance Element.B3005: WCF always generates the wsrmp:DeliveryAssurance element.

  • B3006: WCF immer gibt die wsrmp:ExactlyOnce übermittlungssicherung.B3006: WCF always specifies the wsrmp:ExactlyOnce delivery assurance.

  • B3007: WCF generiert und liest die folgenden Eigenschaften der WS-ReliableMessaging-Assertion und die Steuerung über die WCFReliableSessionBindingElement:B3007: WCF generates and reads the following properties of the WS-ReliableMessaging assertion and provides control over them on the WCFReliableSessionBindingElement:

    • netrmp:InactivityTimeout

    • netrmp:AcknowledgementInterval

    Ein Beispiel für eine RMAssertion.An example of a RMAssertion.

    <wsrmp:RMAssertion>  
      <wsp:Policy>  
        <wsrmp:SequenceSTR/>  
        <wsrmp:DeliveryAssurance>  
          <wsp:Policy>  
            <wsrmp:ExactlyOnce/>  
            <wsrmp:InOrder/>  
          </wsp:Policy>  
        </wsrmp:DeliveryAssurance>  
      </wsp:Policy>  
      <netrmp:InactivityTimeout Milliseconds="600000"/>  
      <netrmp:AcknowledgementInterval Milliseconds="200"/>  
    </wsrmp:RMAssertion>  
    

WS-ReliableMessaging-Erweiterung zur AblaufsteuerungFlow Control WS-ReliableMessaging Extension

WCF verwendet WS-ReliableMessaging-Erweiterbarkeit, um optionale Steuerung des sequenznachrichtenflusses Sequenz-Nachrichtenfluss zu ermöglichen.WCF uses WS-ReliableMessaging extensibility to provide optional additional tighter control over sequence message flow.

Flusssteuerung aktiviert ist, durch Festlegen der ReliableSessionBindingElementdes FlowControlEnabled``boolean Eigenschaft true.Flow control is enabled by setting the ReliableSessionBindingElement’s FlowControlEnabled``boolean property to true. Im folgenden finden eine Liste der Einschränkungen, die für WCF gelten:The following is a list of constraints that apply to WCF:

  • B4001: Wenn zuverlässiges Messaging flusssteuerung aktiviert ist, WCF generiert eine netrm:BufferRemaining Element in der elementerweiterbarkeit des der SequenceAcknowledgement -Header, wie im folgenden Beispiel gezeigt.B4001: When Reliable Messaging Flow Control is enabled, WCF generates a netrm:BufferRemaining element in the element extensibility of the SequenceAcknowledgement header, as shown in the following example.

    <wsrm:SequenceAcknowledgement>  
      <wsrm:Identifier>urn:uuid:656652b8-9af2-4e94-9d07-2dc21c05ed27</wsrm:Identifier>  
      <wsrm:AcknowledgementRange Upper="1" Lower="1"/>             
      <netrm:BufferRemaining>8</netrm:BufferRemaining>  
    </wsrm:SequenceAcknowledgement>  
    
  • B4002: Selbst wenn zuverlässiges Messaging flusssteuerung aktiviert ist, WCF erfordert nicht, dass eine netrm:BufferRemaining Element in der SequenceAcknowledgement Header.B4002: Even when Reliable Messaging Flow Control is enabled, WCF does not require a netrm:BufferRemaining element in the SequenceAcknowledgement header.

  • B4003: WCF zuverlässige Messaging-Ziel verwendet netrm:BufferRemaining , um anzugeben, wie viele neue Nachrichten es Puffern können.B4003: WCF Reliable Messaging Destination uses netrm:BufferRemaining to indicate how many new messages it can buffer.

  • B4004:when Reliable Messaging flusssteuerung aktiviert ist, die WCF zuverlässige Messaging-Quelle verwendet den Wert der netrm:BufferRemaining zu drosseln nachrichtenübertragung.B4004:When Reliable Messaging Flow Control is enabled, the WCF Reliable Messaging Source uses the value of netrm:BufferRemaining to throttle message transmission.

  • B4005: WCF generiert netrm:BufferRemaining -Ganzzahlwerte zwischen 0 und 4096 einschließlich und liest Ganzzahlwerte zwischen 0 und xs:intdes maxInclusive Wert (214748364) einschließlich.B4005: WCF generates netrm:BufferRemaining integer values between 0 and 4096 inclusive, and reads integer values between 0 and xs:int’s maxInclusive value 214748364 inclusive.

NachrichtenaustauschmusterMessage Exchange Patterns

Dieser Abschnitt beschreibt WCFs-Verhalten, wenn WS-ReliableMessaging für verschiedene Nachrichtenaustauschmuster verwendet wird.This section describes WCF's behavior when WS-ReliableMessaging is used for different Message Exchange Patterns. Für jedes Nachrichtenaustauschmuster werden die folgenden zwei Bereitstellungsszenarios erläutert:For each Message Exchange Pattern the following two deployments scenarios are considered:

  • Nicht adressierbarer Initiator: Der Initiator befindet sich hinter einer Firewall; der Beantworter kann Nachrichten an den Initiator nur über HTTP-Antworten zustellen.Non-Addressable Initiator: Initiator is behind a firewall; Responder can deliver messages to the Initiator only on HTTP responses.

  • Adressierbarer Initiator: Sowohl an den Initiator als auch den Beantworter können HTTP-Anforderungen gesendet werden, d. h., es können zwei entgegengesetzte HTTP-Verbindungen eingerichtet werden.Addressable Initiator: Initiator and Responder both can be sent HTTP requests; in other words, two converse HTTP connections can be established.

Unidirektionaler, nicht adressierbarer InitiatorOne-way, Non-addressable Initiator

BindungBinding

WCF bietet ein unidirektionales Nachrichtenaustauschmuster unter Verwendung einer Sequenz über einen HTTP-Kanal.WCF provides a one-way message exchange pattern using one sequence over one HTTP channel. WCF verwendet HTTP-Anforderungen zur Übertragung aller Nachrichten vom Initiator an den Antwortdienst bzw. HTTP-Antworten zur Übertragung aller Nachrichten vom Beantworter an den Initiator.WCF uses HTTP requests to transmit all messages from the Initiator to the Responder and HTTP responses to transmit all messages from the Responder to the Initiator.

CreateSequence-AustauschCreateSequence Exchange

Der WCF--Initiator überträgt eine CreateSequence -Nachricht ohne Offer Element in einer HTTP-Anforderung und erwartet die CreateSequenceResponse -Nachricht in der HTTP-Antwort.The WCF Initiator transmits a CreateSequence message with no Offer element on an HTTP request and expects the CreateSequenceResponse message on the HTTP response. Der WCF-Beantworter erstellt eine Sequenz und überträgt die CreateSequenceResponse -Nachricht ohne Accept Element in der HTTP-Antwort.The WCF Responder creates a sequence and transmits the CreateSequenceResponse message with no Accept element on the HTTP response.

SequenceAcknowledgementSequenceAcknowledgement

Der WCF--Initiator erstellt Bestätigungen als Antwort alle Nachrichten mit Ausnahme der CreateSequence -Nachrichten und Fehlernachrichten.The WCF Initiator processes acknowledgements on the reply of all messages except the CreateSequence message and fault messages. Der WCF-Beantworter überträgt stets eine eigenständige Bestätigung in der HTTP-Antwort auf alle Sequenzen und AckRequested Nachrichten.The WCF Responder always transmits a stand-alone acknowledgement on the HTTP response to all sequence and AckRequested messages.

CloseSequence-AustauschCloseSequence Exchange

Der WCF--Initiator überträgt eine CloseSequence -Nachricht in einer HTTP-Anforderung und erwartet die CreateSequenceResponse -Nachricht in der HTTP-Antwort.The WCF Initiator transmits a CloseSequence message on an HTTP request and expects the CreateSequenceResponse message on the HTTP response. Der WCF-Beantworter überträgt die CloseSequenceResponse -Nachricht in der HTTP-Antwort.The WCF Responder transmits the CloseSequenceResponse message on the HTTP response.

TerminateSequence-AustauschTerminateSequence Exchange

Der WCF--Initiator überträgt eine TerminateSequence -Nachricht in einer HTTP-Anforderung und erwartet die TerminateSequenceResponse -Nachricht in der HTTP-Antwort.The WCF Initiator transmits a TerminateSequence message on an HTTP request and expects the TerminateSequenceResponse message on the HTTP response. Der WCF-Beantworter überträgt die TerminateSequenceResponse -Nachricht in der HTTP-Antwort.The WCF Responder transmits the TerminateSequenceResponse message on the HTTP response.

Unidirektionaler, adressierbarer InitiatorOne Way, Addressable Initiator

BindungBinding

WCF bietet ein unidirektionales Nachrichtenaustauschmuster unter Verwendung einer Sequenz über einen eingehenden und einen ausgehenden HTTP-Kanal.WCF provides a one-way message exchange pattern using one sequence over one inbound and one outbound HTTP channel. WCF verwendet HTTP-Anforderungen zur Übertragung aller Nachrichten.WCF uses the HTTP requests to transmit all messages. Alle HTTP-Antworten haben einen leeren Textbereich und den HTTP-Statuscode 202.All HTTP responses have an empty body and HTTP 202 status code.

CreateSequence-AustauschCreateSequence Exchange

Der WCF--Initiator überträgt eine CreateSequence -Nachricht ohne Offer -Element in einer HTTP-Anforderung.The WCF Initiator transmits a CreateSequence message with no Offer element on an HTTP request. Der WCF-Beantworter erstellt eine Sequenz und überträgt die CreateSequenceResponse -Nachricht ohne Accept -Element in einer HTTP-Anforderung.The WCF Responder creates a sequence and transmits the CreateSequenceResponse message with no Accept element on an HTTP request.

Adressierbarer Duplex-InitiatorDuplex, Addressable Initiator

BindungBinding

WCF bietet ein vollständig asynchrones bidirektionales Nachrichtenaustauschmuster unter Verwendung zweier Sequenzen über einen eingehenden und einen ausgehenden HTTP-Kanal.WCF provides a fully-asynchronous, two-way message exchange pattern using two sequences over one inbound and one outbound HTTP channel. Dieses Nachrichtenaustauschmuster lässt sich bis zu einem gewissen Grad mit dem Nachrichtenaustauschmuster für einen Request/Reply, Addressable-Initiator kombinieren.This message exchange pattern can be mixed with the Request/Reply, Addressable Initiator message exchange pattern in a limited way. WCF verwendet HTTP-Anforderungen zur Übertragung aller Nachrichten.WCF uses HTTP requests to transmit all messages. Alle HTTP-Antworten haben einen leeren Textbereich und den HTTP-Statuscode 202.All HTTP responses have an empty body and HTTP 202 status code.

CreateSequence-AustauschCreateSequence Exchange

Der WCF--Initiator überträgt eine CreateSequence -Nachricht mit einer Offer -Element in einer HTTP-Anforderung.The WCF Initiator transmits a CreateSequence message with an Offer element on an HTTP request. Der WCF-Beantworter stellt sicher, dass die CreateSequence hat eine Offer Element, dann erstellt eine Sequenz und überträgt die CreateSequenceResponse -Nachricht mit einer Accept Element.The WCF Responder ensures that the CreateSequence has an Offer element, then creates a sequence and transmits the CreateSequenceResponse message with an Accept element.

SequenzlebensdauerSequence Lifetime

WCF behandelt die beiden Sequenzen als eine vollduplexsitzung.WCF treats the two sequences as one fully-duplex session.

Nach dem Generieren eines Fehlers, der einem Fehler in einer Sequenz, erwartet WCF Remoteendpunkt für beide Sequenzen auslöst.Upon generating a fault that faults one sequence, WCF expects the remote endpoint to fault both sequences. Nach dem Lesen eines Fehlers, der einem Fehler in einer Sequenz, Fehler WCF für beide Sequenzen.Upon reading a fault that faults one sequence, WCF faults both sequences.

WCF kann seine ausgehende Sequenz schließen und zum Verarbeiten von Nachrichten in seiner eingehenden Sequenz fortfahren.WCF can close its outbound sequence and continue to process messages on its inbound sequence. Im Gegensatz dazu kann WCF das Schließen der eingehenden Sequenz durchführen und weiter Nachrichten in seiner ausgehenden Sequenz senden.Conversely, WCF can process the close of the inbound sequence and continue to send messages on its outbound sequence.

Anforderung-Antwort- und unidirektionaler, nicht adressierbarer InitiatorRequest-Reply and One-Way, Non-Addressable Initiator

BindungBinding

WCF bietet einen unidirektionalen und Anforderung-Antwort-Nachrichtenaustauschmuster, die unter Verwendung zweier Sequenzen über einen HTTP-Kanal.WCF provides a one-way and request-reply message exchange pattern using two sequences over one HTTP channel. WCF verwendet HTTP-Anforderungen zur Übertragung aller Nachrichten vom Initiator an den Antwortdienst bzw. HTTP-Antworten zur Übertragung aller Nachrichten vom Beantworter an den Initiator.WCF uses HTTP requests to transmit all messages from the Initiator to the Responder and HTTP responses to transmit all messages from the Responder to the Initiator.

CreateSequence-AustauschCreateSequence Exchange

Der WCF--Initiator überträgt eine CreateSequence -Nachricht mit einer Offer Element in einer HTTP-Anforderung und erwartet die CreateSequenceResponse -Nachricht in der HTTP-Antwort.The WCF Initiator transmits a CreateSequence message with an Offer element on an HTTP request and expects the CreateSequenceResponse message on the HTTP response. Der WCF-Beantworter erstellt eine Sequenz und überträgt die CreateSequenceResponse -Nachricht mit einem Accept Element in der HTTP-Antwort.The WCF Responder creates a sequence and transmits the CreateSequenceResponse message with an Accept element on the HTTP response.

Unidirektionale NachrichtOne-way Message

Um einen unidirektionalen Nachrichtenaustausch erfolgreich abgeschlossen haben, den WCF-Initiator eine anforderungssequenznachricht in der HTTP-Anforderung sendet und empfängt eine eigenständige SequenceAcknowledgement -Nachricht in der HTTP-Antwort.To complete a one-way message exchange successfully, the WCF Initiator transmits a request sequence message on the HTTP request and receives a standalone SequenceAcknowledgement message on the HTTP response. Die SequenceAcknowledgement-Nachricht muss die Nachrichtenübertragung bestätigen.The SequenceAcknowledgement must acknowledge the message transmitted.

Der WCF-Beantworter kann mit einer Bestätigung, einen Fehler oder eine Antwort mit leerem Textbereich und dem HTTP-Statuscode 202 auf die Anforderung antworten.The WCF Responder may reply to the request with an acknowledgement, a fault, or a response with an empty body and HTTP 202 status code.

Bidirektionale NachrichtenTwo Way Messages

Um eine zwei-Wege-Nachrichtenaustauschprotokoll erfolgreich abgeschlossen haben, den WCF-Initiator überträgt eine anforderungssequenznachricht in der HTTP-Anforderung und empfängt eine antwortsequenznachricht in der HTTP-Antwort.To complete a two way message exchange protocol successfully, the WCF Initiator transmits a request sequence message on the HTTP request and receives a reply sequence message on the HTTP response. Die Antwort muss eine SequenceAcknowledgement enthalten, die die Übertragung der Anforderungssequenznachricht bestätigt.The response must carry a SequenceAcknowledgement acknowledging the request sequence message transmitted.

Der WCF-Beantworter antwortet möglicherweise auf die Anforderung mit einer Anwendungsantwort, einem Fehler oder eine Antwort mit leerem Textbereich und dem HTTP-Statuscode 202.The WCF Responder may reply to the request with an application reply, a fault or a response with an empty body and HTTP 202 status code.

Aufgrund des Vorhandenseins unidirektionaler Nachrichten und des zeitlichen Ablaufs von Anwendungsantworten verfügen die Sequenznummern der Anforderungssequenznachricht und der Antwortsequenznachricht über keine Korrelation.Because of the presence of one-way messages and the timing of application replies, the request sequence message’s sequence number and the response message’s sequence number have no correlation.

Wiederholen von AntwortenRetrying Replies

WCF basiert auf HTTP-Anforderung / Antwort-Korrelation für das bidirektionale Nachrichtenaustauschprotokoll.WCF relies on HTTP request-reply correlation for two-way message exchange protocol correlation. Aus diesem Grund der WCF-Initiator wird nicht beendet, und wiederholen Sie dann eine anforderungssequenznachricht, wenn die anforderungssequenznachricht bestätigt wird, sondern stattdessen bei die HTTP-Antwort enthält einen SequenceAcknowledgement, Anwendungsantwort oder einen Fehler.Because of this, the WCF Initiator does not stop retrying a request sequence message when the request sequence message is acknowledged but rather when the HTTP response carries a SequenceAcknowledgement, application reply, or fault. Der WCF-Beantworter wiederholt die Antworten auf die HTTP-Antwort der Anforderung mit der die Antwort korreliert ist.The WCF Responder retries replies on the HTTP response of the request to which the reply is correlated.

CloseSequence-AustauschCloseSequence Exchange

Nach dem Empfang aller Antwortsequenznachrichten und Bestätigungen für alle unidirektionalen anforderungssequenznachrichten, die WCF--Initiator überträgt eine CloseSequence -Nachricht für die anforderungssequenz in einer HTTP-Anforderung und erwartet die CloseSequenceResponse der HTTP-Antwort.After receiving all reply sequence messages and acknowledgements for all one way request sequence messages, the WCF Initiator transmits a CloseSequence message for the request sequence on an HTTP request and expects the CloseSequenceResponse on the HTTP response.

Durch Schließen der Anforderungssequenz wird die Antwortsequenz implizit geschlossen.Closing the request sequence implicitly closes the reply sequence. Dies bedeutet, dass der Initiator WCF umfasst der Antwortsequenz endgültigen SequenceAcknowledgement auf die CloseSequence Nachricht und die Antwortsequenz verfügt nicht über eine CloseSequence Exchange.This means the WCF Initiator includes the reply sequence’s Final SequenceAcknowledgement on the CloseSequence message and the reply sequence does not have a CloseSequence exchange.

Der WCF-Beantworter wird sichergestellt, dass alle Antworten bestätigt werden, und überträgt die CloseSequenceResponse -Nachricht in der HTTP-Antwort.The WCF Responder ensures all replies are acknowledged and transmits the CloseSequenceResponse message on the HTTP response.

TerminateSequence-AustauschTerminateSequence Exchange

Nach dem Empfang der CloseSequenceResponse Nachricht, die WCF--Initiator überträgt eine TerminateSequence -Nachricht für die anforderungssequenz in einer HTTP-Anforderung und erwartet die TerminateSequenceResponse der HTTP-Antwort.After receiving the CloseSequenceResponse message, the WCF Initiator transmits a TerminateSequence message for the request sequence on an HTTP request and expects the TerminateSequenceResponse on the HTTP response.

Wie beim CloseSequence-Austausch wird durch Beendigung der Anforderungssequenz die Antwortsequenz implizit beendet.Like the CloseSequence exchange, terminating the request sequence implicitly terminates the reply sequence. Dies bedeutet, dass der Initiator WCF umfasst der Antwortsequenz endgültigen SequenceAcknowledgement auf die TerminateSequence Nachricht und die Antwortsequenz verfügt nicht über eine TerminateSequence Exchange.This means the WCF Initiator includes the reply sequence’s final SequenceAcknowledgement on the TerminateSequence message and the reply sequence does not have a TerminateSequence exchange.

Der WCF-Beantworter überträgt die TerminateSequenceResponse -Nachricht in der HTTP-Antwort.The WCF Responder transmits the TerminateSequenceResponse message on the HTTP response.

Adressierbarer Anforderung/Antwort-InitiatorRequest/Reply, Addressable Initiator

BindungBinding

WCF bietet ein Anforderung-Antwort-Nachrichtenaustauschmuster unter Verwendung zweier Sequenzen über einen eingehenden und einen ausgehenden HTTP-Kanal.WCF provides a request-reply message exchange pattern using two sequences over one inbound and one outbound HTTP channel. Dieses Nachrichtenaustauschmuster lässt sich bis zu einem gewissen Grad mit dem Nachrichtenaustauschmuster für einen Duplex, Addressable-Initiator kombinieren.This message exchange pattern can be mixed with the Duplex, Addressable Initiator message exchange pattern in a limited way. WCF verwendet HTTP-Anforderungen zur Übertragung aller Nachrichten.WCF uses the HTTP requests to transmit all messages. Alle HTTP-Antworten haben einen leeren Textbereich und den HTTP-Statuscode 202.All HTTP responses have an empty body and HTTP 202 status code.

CreateSequence-AustauschCreateSequence Exchange

Der WCF--Initiator überträgt eine CreateSequence -Nachricht mit einer Offer -Element in einer HTTP-Anforderung.The WCF Initiator transmits a CreateSequence message with an Offer element on an HTTP request. Der WCF-Beantworter stellt sicher, dass die CreateSequence verfügt über eine Offer Element erstellt dann eine Sequenz und überträgt die CreateSequenceResponse -Nachricht mit einer Accept Element.The WCF Responder ensures that the CreateSequence has an Offer element then creates a sequence and transmits the CreateSequenceResponse message with an Accept element.

Anforderung/Antwort-KorrelationRequest/Reply Correlation

Folgendes gilt für alle korrelierenden Anforderungen und Antworten:The following applies to all correlated requests and replies:

  • WCF wird sichergestellt, dass alle anwendungsanforderungsnachrichten eine ReplyTo -Endpunktverweis und eine MessageId.WCF ensures all application request messages bear a ReplyTo endpoint reference and a MessageId.

  • WCF wendet den lokalen Endpunktverweis als einzelnen anwendungsanforderungsnachricht ReplyTo.WCF applies the local endpoint reference as each application request message’s ReplyTo. Der lokale Endpunktverweis ist der CreateSequence-Verweis der ReplyTo-Nachricht für den Initiator und der CreateSequence-Verweis der To-Nachricht für den Beantworter.The local endpoint reference is the CreateSequence message’s ReplyTo for the Initiator and the CreateSequence message’s To for the Responder.

  • WCF wird sichergestellt, dass eingehende Anforderungsnachrichten-Verweis besitzen eine MessageId und ein ReplyTo.WCF ensures that incoming request messages bear a MessageId and a ReplyTo.

  • WCF wird sichergestellt, dass die ReplyTo URI-Endpunktverweises aller anwendungsanforderungsnachrichten entsprechen den lokalen Endpunktverweis wie weiter oben definiert.WCF ensures the ReplyTo endpoint reference’s URI of all application request messages match the local endpoint reference as defined earlier.

  • WCF wird sichergestellt, dass alle Antworten den richtigen tragen RelatesTo und To -Header gemäß wsa Anforderung/Antwort-Korrelationsregeln.WCF ensures that all replies bear the correct RelatesTo and To headers following wsa request/reply correlation rules.