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

In diesem Thema werden Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)-Implementierungsdetails für das WS-ReliableMessaging-Protokoll in der Version 1.1 vom Februar 2007 beschrieben, die für die Interoperation mithilfe des HTTP-Transports erforderlich sind.This topic covers Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) implementation details for the WS-ReliableMessaging February 2007 (version 1.1) protocol necessary for interoperation using the HTTP transport. WCFWCF orientiert sich an der WS-ReliableMessaging-Spezifikation mit den in diesem Thema erläuterten Einschränkungen und Klarstellungen. 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.

Das zuverlässige WS-Messaging-Protokoll vom Februar 2007 ist in WCFWCF durch das ReliableSessionBindingElement implementiert.The WS-ReliableMessaging February 2007 protocol is implemented in WCFWCF 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/200702http://docs.oasis-open.org/ws-rx/wsrm/200702
netrmnetrm http://schemas.microsoft.com/ws/2006/05/rmhttp://schemas.microsoft.com/ws/2006/05/rm
ss http://www.w3.org/2003/05/soap-envelopehttp://www.w3.org/2003/05/soap-envelope
wsawsa http://schemas.xmlsoap.org/ws/2005/08/addressinghttp://schemas.xmlsoap.org/ws/2005/08/addressing
wssewsse http://docs.oasis-open.org/wss/2004/01/oasis-200401-wssecurity-secext-1.0.xsdhttp://docs.oasis-open.org/wss/2004/01/oasis-200401-wssecurity-secext-1.0.xsd
wsrmpwsrmp http://docs.oasis-open.org/ws-rx/wsrmp/200702http://docs.oasis-open.org/ws-rx/wsrmp/200702
netrmpnetrmp http://schemas.microsoft.com/ws-rx/wsrmp/200702http://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

WCFWCF implementiert CreateSequence- und CreateSequenceResponse-Nachrichten, um eine zuverlässige Messaging-Sequenz einzurichten. implements CreateSequence and CreateSequenceResponse messages to establish a reliable messaging sequence. Es gelten die folgenden Einschränkungen:The following constraints apply:

  • B1101: Der WCFWCF-Initiator verwendet den gleichen Endpunktverweis wie CreateSequence, ReplyTo und AcksTo der Offer/Endpoint-Nachricht.B1101: The WCFWCF 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 WCFWCF-Beantworter überprüft, ob der URI-Teil der AcksTo-, ReplyTo- und Endpoint-Endpunktreferenzen identisch ist, bevor die Sequenz erstellt wird.The WCFWCF 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.

    • WCFWCF geht davon aus, dass die Verweisparameter der AcksTo-, ReplyTo- und Offer/Endpoint-Endpunktverweise für CreateSequence identisch sind, erzwingt dies jedoch nicht, und verwendet Verweisparameter vom ReplyTo-Endpunktverweis für Bestätigungen und Nachrichten umgekehrter Sequenz. 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 WCFWCF-Initiator generiert das optionale Expires-Element oder Offer/Expires-Element in der CreateSequence-Nachricht nicht.B1104: The WCFWCF Initiator does not generate the optional Expires or Offer/Expires element in the CreateSequence message.

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

  • B1106: Bei Zugreifen auf die CreateSequenceResponse-Nachricht liest der WCFWCF-Initiator den optionalen Expires-Wert, verwendet ihn aber nicht.B1106: When accessing the CreateSequenceResponse message, the WCFWCF Initiator reads the optional Expires value but does not use it.

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

  • B1108: WCFWCF verwendet nur den DiscardFollowingFirstGap-Wert und den NoDiscard-Wert im IncompleteSequenceBehavior-Element.B1108: WCFWCF 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 ein Offer-Element enthält, weist der unidirektionale WCFWCF-Beantworter die angebotene Sequenz ab, indem er mit einer CreateSequenceResponse-Nachricht ohne Accept-Element antwortet.B1109: If CreateSequence contains an Offer element, the one way WCFWCF Responder rejects the offered sequence by responding with a CreateSequenceResponse without an Accept element.

  • B1110: Wenn ein zuverlässiger Messaging-Beantworter die angebotene Sequenz zurückweist, gibt der WCFWCF-Initiator einen Fehler für die neu erstellte Sequenz zurück.B1110: If a Reliable Messaging Responder rejects the offered sequence, the WCFWCF Initiator faults the newly established sequence.

  • B1111: Wenn CreateSequence kein Offer-Element enthält, weist der bidirektionale WCFWCF-Beantworter die angebotene Sequenz ab, indem er mit einem CreateSequenceRefused-Fehler antwortet.B1111: If CreateSequence does not contain an Offer element, the two-way WCFWCF 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.

WCFWCF verwendet zuverlässiges WS-Messaging, um zuverlässige Sitzungen zwischen dem Initiator und dem Beantworter einzurichten. uses WS-ReliableMessaging to establish reliable sessions between the Initiator and the Responder. Die WCFWCF WS-ReliableMessaging-Implementierung bietet eine zuverlässige Sitzung für unidirektionale, Anforderung-Antwort- und Vollduplex-Nachrichtenmuster.The WCFWCF 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 WCFWCF die Sicherheit solcher Sitzungen sowie End-to-End-Schutz der Sitzungsintegrität garantiert, kann sichergestellt werden, dass alle an den gleichen Teilnehmer gerichteten Nachrichten am selben Ziel ankommen.Because WCFWCF 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 die Einschränkungen R1102 R1112 und R1113 für WCFWCF.Therefore, constraints R1102, R1112, and R1113 apply to WCFWCF.

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

WCFWCF verwendet die CloseSequence-Nachricht und die CloseSequenceResponse-Nachricht, um das von einer zuverlässigen Messaging-Quelle initiierte Schließen durchzuführen. uses the CloseSequence and CloseSequenceResponse messages for a Reliable Messaging source-initiated shutdown. Das WCFWCF Reliable Messaging-Ziel initiiert das Schließen nicht, und die WCFWCF Reliable Messaging-Quelle unterstützt keinen Schließen-Vorgang, der von einem zuverlässigen Messaging-Ziel initiiert wird.The WCFWCF Reliable Messaging destination does not initiate shutdown and the WCFWCF Reliable Messaging source does not support a Reliable Messaging destination-initiated shutdown. Es gelten die folgenden Einschränkungen:The following constraints apply:

  • B1201: Die WCFWCF Reliable Messaging-Quelle sendet immer eine CloseSequence-Nachricht, um die Sequenz zu schließen.B1201: The WCFWCF 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 betrachtet die WCFWCF Reliable Messaging-Quelle die Sequenz als unvollständig und sendet einen Fehler.B1205: Upon receiving a CloseSequence message, the WCFWCF 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

WCFWCF verwendet hauptsächlich den TerminateSequence/TerminateSequenceResponse-Handshake, nachdem der CloseSequence/CloseSequenceResponse-Handshake abgeschlossen ist. primarily uses the TerminateSequence/TerminateSequenceResponse handshake after completing the CloseSequence/CloseSequenceResponse handshake. Das WCFWCF Reliable Messaging-Ziel initiiert die Beendigung nicht, und die zuverlässige Messaging-Quelle unterstützt keine Beendigung, die von einem zuverlässigen Messaging-Ziel initiiert wird.The WCFWCF 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 WCFWCF-Initiator schickt die TerminateSequence-Nachricht erst nach dem erfolgreichen Abschluss des CloseSequence/CloseSequenceResponse-Handshake.B1301: The WCFWCF Initiator only sends the TerminateSequence message after the successful completion of the CloseSequence/CloseSequenceResponse handshake.

  • R1302: WCFWCF überprüft, ob das LastMsgNumber-Element in allen CloseSequence-Nachrichten und TerminateSequence-Nachrichten für eine bestimmte Sequenz konsistent ist.R1302: WCFWCF 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: Bei Empfang einer TerminateSequence-Nachricht vor dem CloseSequence/CloseSequenceResponse-Handshake antwortet das WCFWCF Reliable Messaging-Ziel mit einer TerminateSequenceResponse-Nachricht.B1304: When receiving a TerminateSequence message prior to the CloseSequence/CloseSequenceResponse handshake, the WCFWCF 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:WCFWCF generiert und greift auf die Sequenznummern, die nicht höher als xs:longdes inklusive Maximalwert 9223372036854775807.B1401:WCFWCF 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

WCFWCF verwendet den AckRequested-Header als Keep-alive-Mechanismus. 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

WCFWCF verwendet den Piggyback-Mechanismus für die im zuverlässigen WS-Messaging bereitgestellten Sequenzbestätigungen. 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: WCFWCF generiert keine SequenceAcknowledgement-Header, die Nack-Elemente enthalten.B1602: WCFWCF does not generate SequenceAcknowledgement headers that contain Nack elements. WCFWCF überprüft, ob jedes Nack-Element eine Sequenznummer enthält. Wenn dies nicht der Fall ist, werden das Nack-Element und sein Wert ignoriert. 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

Die folgende Liste enthält die Einschränkungen, die für die WCFWCF-Implementierung der WS-ReliableMessaging-Fehler gelten.The following is a list of constraints that apply to the WCFWCF implementation of WS-ReliableMessaging faults. Es gelten die folgenden Einschränkungen:The following constraints apply:

  • B1701: WCFWCF generiert keine MessageNumberRollover Fehler.B1701: WCFWCF does not generate MessageNumberRollover faults.

  • B1702: Wenn der Dienstendpunkt über SOAP 1.2 seine Verbindungsgrenze erreicht und keine weiteren Verbindungen verarbeiten kann, generiert WCFWCF den geschachtelten CreateSequenceRefused-Fehlersubcode netrm:ConnectionLimitReached (siehe folgendes Beispiel).B1702: Over SOAP 1.2, when the service endpoint reaches its connection limit and cannot process new connections, WCFWCF 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 zuverlässiges WS-Messaging die WS-Adressierung verwendet, generiert und überträgt die WCFWCF-Implementierung möglicherweise WS-Adressierungsfehler.Because WS-ReliableMessaging uses WS-Addressing, the WCFWCF WS-ReliableMessaging implementation may generate and transmit WS-Addressing faults. In diesem Abschnitt werden die WS-Adressierungsfehler erläutert, die WCFWCF explizit auf der WS-ReliableMessaging-Schicht generiert und überträgt.This section covers the WS-Addressing faults that WCFWCF explicitly generates and transmits at the WS-ReliableMessaging layer:

  • B1801:WCFWCF generiert und überträgt die Message Addressing Header Required fehl, wenn eine der folgenden Aussagen zutrifft:B1801:WCFWCF 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:WCFWCF 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:WCFWCF 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

WCFWCF unterstützt zwei Versionen der WS-Adressierung: WS-Adressierung 2004/08 [WS-ADDR] und die Empfehlungen für W3C die WS-Addressierung 1.0 [WS-WS-ADDR-CORE] und [WS-ADDR-SOAP]. 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. Die folgende Liste enthält die Einschränkungen, die für WCFWCF gelten:The following is a list of constraints that apply to WCFWCF:

  • 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

WCFWCF unterstützt die Verwendung sowohl von SOAP 1.1 als auch von SOAP 1.2 mit zuverlässigem WS-Messaging. 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

WCFWCF bietet Schutz für die WS-ReliableMessaging-Sequenzen durch die Verwendung einer sicheren Transportmethode (HTTPS), die Erstellung mit WS-Sicherheit und die Erstellung mit WS-Secure Conversation. 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. Die folgende Liste enthält die Einschränkungen, die für WCFWCF gelten:The following is a list of constraints that apply to WCFWCF:

  • R2301: Damit die Integrität einer WS-ReliableMessaging-Sequenz sowie die Integrität und Vertraulichkeit einzelner Nachrichten sichergestellt ist, muss WS-Secure Conversation für WCFWCF verwendet werden.R2301: To protect the integrity of a WS-ReliableMessaging sequence in addition to the integrity and confidentiality of individual messages, WCFWCF 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 WS-Secure Conversation zur Erstellung verwendet wird, erfordert es der WCFWCF-Beantworter, dass die CreateSequence-Nachricht das wsse:SecurityTokenReference-Element und den wsrm:UsesSequenceSTR-Header enthält.R2305: When composed with WS-Secure Conversation, the WCFWCF 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

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

  • B2401: WCFWCF generiert den wsrm:UsesSequenceSSL-Header nicht.B2401: WCFWCF does not generate the wsrm:UsesSequenceSSL header.

  • R2402: Ein zuverlässiger Messaging-Initiator darf keine CreateSequence-Nachricht mit einem wsrm:UsesSequenceSSL-Header an einen WCFWCF-Beantworter senden.R2402: A Reliable Messaging Initiator must not send a CreateSequence message with a wsrm:UsesSequenceSSL header to a WCFWCF Responder.

Komposition mit WS-PolicyComposition with WS-Policy

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

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

WCFWCF verwendet die WS-Richtlinienassertion von zuverlässigem WS-Messaging, wsrm:RMAssertion, um die Fähigkeiten von Endpunkten zu beschreiben. uses WS-ReliableMessaging WS-Policy Assertion wsrm:RMAssertion to describe endpoints capabilities. Die folgende Liste enthält die Einschränkungen, die für WCFWCF gelten:The following is a list of constraints that apply to WCFWCF:

  • B3001: WCFWCF fügt die wsrmn:RMAssertion-WS-Richtlinienassertion an wsdl:binding-Elemente an.B3001: WCFWCF attaches wsrmn:RMAssertion WS-Policy Assertion to wsdl:binding elements. WCFWCF unterstützt sowohl das Anfügen an wsdl:binding-Elemente als auch an wsdl:port-Elemente. supports both attachments to wsdl:binding and wsdl:port elements.

  • B3002: WCFWCF generiert nie das wsp:Optional-Tag.B3002: WCFWCF never generates the wsp:Optional tag.

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

  • R3004: Da WCFWCF keine Erstellung mit SSL/TLS-Sitzungen durchführt, akzeptiert WCFWCF keine Richtlinie mit wsrmp:SequenceTransportSecurity.R3004: Because WCFWCF does not compose with SSL/TLS sessions, WCFWCF does not accept policy that specifies wsrmp:SequenceTransportSecurity.

  • B3005: WCFWCF generiert immer das wsrmp:DeliveryAssurance-Element.B3005: WCFWCF always generates the wsrmp:DeliveryAssurance element.

  • B3006: WCFWCF gibt immer die wsrmp:ExactlyOnce-Zustellungszusicherung an.B3006: WCFWCF always specifies the wsrmp:ExactlyOnce delivery assurance.

  • B3007: WCFWCF generiert und liest die folgenden Eigenschaften der WS-ReliableMessaging-Assertion und ermöglicht die Steuerung sie auf die WCFWCF ReliableSessionBindingElement:B3007: WCFWCF generates and reads the following properties of the WS-ReliableMessaging assertion and provides control over them on the WCFWCFReliableSessionBindingElement:

    • 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

WCFWCF verwendet die WS-ReliableMessaging-Erweiterbarkeit, um die optionale stärkere Kontrolle über den Sequenznachrichtenfluss zu ermöglichen. 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. Die folgende Liste enthält die Einschränkungen, die für WCFWCF gelten:The following is a list of constraints that apply to WCFWCF:

  • B4001: Wenn die zuverlässige Messaging-Ablaufsteuerung aktiviert ist, generiert WCFWCF ein netrm:BufferRemaining-Element in der Elementerweiterbarkeit des SequenceAcknowledgement-Headers, wie im folgenden Beispiel zu sehen ist:B4001: When Reliable Messaging Flow Control is enabled, WCFWCF 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 die zuverlässige Messaging-Ablaufsteuerung aktiviert ist, erfordert WCFWCF kein netrm:BufferRemaining-Element im SequenceAcknowledgement-Header.B4002: Even when Reliable Messaging Flow Control is enabled, WCFWCF does not require a netrm:BufferRemaining element in the SequenceAcknowledgement header.

  • B4003: Das WCFWCF ReliableMessaging-Ziel verwendet netrm:BufferRemaining, um anzugeben, wie viele neue Nachrichten es puffern kann.B4003: WCFWCF Reliable Messaging Destination uses netrm:BufferRemaining to indicate how many new messages it can buffer.

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

  • B4005: WCFWCF generiert netrm:BufferRemaining-Ganzzahlwerte zwischen 0 und 4096 einschließlich und liest Ganzzahlwerte zwischen 0 und dem xs:int-Wert von maxInclusive (214748364) einschließlich.B4005: WCFWCF 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

In diesem Abschnitt wird das Verhalten von WCFWCF bei Verwendung von WS-ReliableMessaging für verschiedene Nachrichtenaustauschmuster beschrieben.This section describes WCFWCF'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

WCFWCF stellt ein unidirektionales Nachrichtenaustauschmuster unter Verwendung einer Sequenz über einen HTTP-Kanal bereit. provides a one-way message exchange pattern using one sequence over one HTTP channel. WCFWCF verwendet HTTP-Anforderungen, um Nachrichten vom Initiator an den Beantworter zu übertragen, und HTTP-Antworten, um Nachrichten vom Beantworter an den Initiator zu übertragen. 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 WCFWCF-Initiator überträgt eine CreateSequence-Nachricht ohne Offer-Element in einer HTTP-Anforderung und erwartet die CreateSequenceResponse-Nachricht in der HTTP-Antwort.The WCFWCF Initiator transmits a CreateSequence message with no Offer element on an HTTP request and expects the CreateSequenceResponse message on the HTTP response. Der WCFWCF-Beantworter erstellt eine Sequenz und überträgt die CreateSequenceResponse-Nachricht ohne Accept-Element in der HTTP-Antwort.The WCFWCF Responder creates a sequence and transmits the CreateSequenceResponse message with no Accept element on the HTTP response.

SequenceAcknowledgementSequenceAcknowledgement

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

CloseSequence-AustauschCloseSequence Exchange

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

TerminateSequence-AustauschTerminateSequence Exchange

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

Unidirektionaler, adressierbarer InitiatorOne Way, Addressable Initiator

BindungBinding

WCFWCF bietet ein unidirektionales Nachrichtenaustauschmuster unter Verwendung einer Sequenz über einen eingehenden und einen ausgehenden HTTP-Kanal. provides a one-way message exchange pattern using one sequence over one inbound and one outbound HTTP channel. WCFWCF verwendet HTTP-Anforderungen zur Übertragung aller Nachrichten. 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 WCFWCF-Initiator überträgt eine CreateSequence-Nachricht ohne Offer-Element in einer HTTP-Anforderung.The WCFWCF Initiator transmits a CreateSequence message with no Offer element on an HTTP request. Der WCFWCF-Beantworter erstellt eine Sequenz und überträgt die CreateSequenceResponse-Nachricht ohne Accept-Element in einer HTTP-Anforderung.The WCFWCF Responder creates a sequence and transmits the CreateSequenceResponse message with no Accept element on an HTTP request.

Adressierbarer Duplex-InitiatorDuplex, Addressable Initiator

BindungBinding

WCFWCF bietet ein vollständig asynchrones bidirektionales Nachrichtenaustauschmuster unter Verwendung zweier Sequenzen über einen eingehenden und einen ausgehenden HTTP-Kanal. 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. WCFWCF verwendet HTTP-Anforderungen zur Übertragung aller Nachrichten. 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 WCFWCF-Initiator überträgt eine CreateSequence-Nachricht mit einem Offer-Element in einer HTTP-Anforderung.The WCFWCF Initiator transmits a CreateSequence message with an Offer element on an HTTP request. Der WCFWCF-Beantworter stellt sicher, dass CreateSequence ein Offer-Element enthält, erstellt dann eine Sequenz und überträgt die CreateSequenceResponse-Nachricht mit einem Accept-Element.The WCFWCF Responder ensures that the CreateSequence has an Offer element, then creates a sequence and transmits the CreateSequenceResponse message with an Accept element.

SequenzlebensdauerSequence Lifetime

WCFWCF behandelt die zwei Sequenzen als eine Vollduplexsitzung. treats the two sequences as one fully-duplex session.

Nach dem Generieren eines Fehlers für eine Sequenz erwartet WCFWCF, dass der Remoteendpunkt einen Fehler für beide Sequenzen auslöst.Upon generating a fault that faults one sequence, WCFWCF expects the remote endpoint to fault both sequences. Nach dem Lesen eines Fehlers, der zum Fehlschlagen einer Sequenz führt, löst WCFWCF einen Fehler für beide Sequenzen aus.Upon reading a fault that faults one sequence, WCFWCF faults both sequences.

WCFWCF kann seine ausgehende Sequenz schließen und damit fortfahren, Nachrichten in seiner eingehenden Sequenz zu verarbeiten. can close its outbound sequence and continue to process messages on its inbound sequence. Umgekehrt kann WCFWCF auch das Schließen der eingehenden Sequenz durchführen und weiter Nachrichten in seiner ausgehenden Sequenz senden.Conversely, WCFWCF 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

WCFWCF bietet ein unidirektionales Anforderung-Antwort-Nachrichtenaustauschmuster unter Verwendung zweier Sequenzen über einen HTTP-Kanal. provides a one-way and request-reply message exchange pattern using two sequences over one HTTP channel. WCFWCF verwendet HTTP-Anforderungen, um Nachrichten vom Initiator an den Beantworter zu übertragen, und HTTP-Antworten, um Nachrichten vom Beantworter an den Initiator zu übertragen. 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 WCFWCF-Initiator überträgt eine CreateSequence-Nachricht mit einem Offer-Element in einer HTTP-Anforderung und erwartet die CreateSequenceResponse-Nachricht in der HTTP-Antwort.The WCFWCF Initiator transmits a CreateSequence message with an Offer element on an HTTP request and expects the CreateSequenceResponse message on the HTTP response. Der WCFWCF-Beantworter erstellt eine Sequenz und überträgt die CreateSequenceResponse-Nachricht mit einem Accept-Element in der HTTP-Antwort.The WCFWCF 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 durchzuführen, überträgt der WCFWCF-Initiator eine Anforderungssequenznachricht in der HTTP-Anforderung und empfängt eine eigenständige SequenceAcknowledgement-Nachricht in der HTTP-Antwort.To complete a one-way message exchange successfully, the WCFWCF 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 WCFWCF-Beantworter kann mit einer Bestätigung, einem Fehler oder einer Antwort mit leerem Textbereich und dem HTTP-Statuscode 202 auf die Anforderung reagieren.The WCFWCF 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 ein bidirektionales Nachrichtenaustauschprotokoll erfolgreich durchzuführen, überträgt der WCFWCF-Initiator 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 WCFWCF 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 WCFWCF-Beantworter kann mit einer Anwendungsantwort, einem Fehler oder einer Antwort mit leerem Textbereich und dem HTTP-Statuscode 202 auf die Anforderung reagieren.The WCFWCF 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

WCFWCF nutzt die HTTP-Anforderung-Antwort-Korrelation für das bidirektionale Nachrichtenaustauschprotokoll. relies on HTTP request-reply correlation for two-way message exchange protocol correlation. Daher wiederholt der WCFWCF-Initiator eine Anforderungssequenznachricht auch dann weiter, wenn die Anforderungssequenznachricht bestätigt wird. Er hört erst dann auf, wenn die HTTP-Antwort eine SequenceAcknowledgement, eine Anwendungsantwort oder einen Fehler enthält.Because of this, the WCFWCF 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 WCFWCF-Beantworter wiederholt die Antworten in der HTTP-Antwort auf die Anforderung, mit der die Antwort korreliert ist.The WCFWCF 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 überträgt der WCFWCF-Initiator eine CloseSequence-Nachricht für die Anforderungssequenz in einer HTTP-Anforderung und erwartet die CloseSequenceResponse in der HTTP-Antwort.After receiving all reply sequence messages and acknowledgements for all one way request sequence messages, the WCFWCF 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. Das bedeutet, der WCFWCF-Initiator fügt die abschließende SequenceAcknowledgement der Antwortsequenz in die CloseSequence-Nachricht ein, und die Antwortsequenz verfügt über keinen CloseSequence-Austausch.This means the WCFWCF Initiator includes the reply sequence’s Final SequenceAcknowledgement on the CloseSequence message and the reply sequence does not have a CloseSequence exchange.

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

TerminateSequence-AustauschTerminateSequence Exchange

Nach Empfang der CloseSequenceResponse-Nachricht überträgt der WCFWCF-Initiator eine TerminateSequence-Nachricht für die Anforderungssequenz in einer HTTP-Anforderung und erwartet die TerminateSequenceResponse in der HTTP-Antwort.After receiving the CloseSequenceResponse message, the WCFWCF 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. Das bedeutet, der WCFWCF-Initiator fügt die abschließende SequenceAcknowledgement der Antwortsequenz in die TerminateSequence-Nachricht ein, und die Antwortsequenz verfügt über keinen TerminateSequence-Austausch.This means the WCFWCF Initiator includes the reply sequence’s final SequenceAcknowledgement on the TerminateSequence message and the reply sequence does not have a TerminateSequence exchange.

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

Adressierbarer Anforderung/Antwort-InitiatorRequest/Reply, Addressable Initiator

BindungBinding

WCFWCF bietet ein Anforderung-Antwort-Nachrichtenaustauschmuster unter Verwendung zweier Sequenzen über einen eingehenden und einen ausgehenden HTTP-Kanal. 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. WCFWCF verwendet HTTP-Anforderungen zur Übertragung aller Nachrichten. 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 WCFWCF-Initiator überträgt eine CreateSequence-Nachricht mit einem Offer-Element in einer HTTP-Anforderung.The WCFWCF Initiator transmits a CreateSequence message with an Offer element on an HTTP request. Der WCFWCF-Beantworter stellt sicher, dass CreateSequence ein Offer-Element enthält, erstellt dann eine Sequenz und überträgt die CreateSequenceResponse-Nachricht mit einem Accept-Element.The WCFWCF 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:

  • WCFWCF stellt sicher, dass alle Anwendungsanforderungsnachrichten einen ReplyTo-Endpunktverweis und eine MessageId enthalten. ensures all application request messages bear a ReplyTo endpoint reference and a MessageId.

  • WCFWCF wendet den lokalen Endpunktverweis als ReplyTo jeder einzelnen Anwendungsanforderungsnachricht an. 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.

  • WCFWCF stellt sicher, dass eingehende Anforderungsnachrichten eine MessageId und einen ReplyTo-Verweis besitzen. ensures that incoming request messages bear a MessageId and a ReplyTo.

  • WCFWCF stellt zudem sicher, dass der URI des ReplyTo-Endpunktverweises aller Anwendungsanforderungsnachrichten wie weiter oben definiert mit dem lokalen Endpunktverweis übereinstimmt. ensures the ReplyTo endpoint reference’s URI of all application request messages match the local endpoint reference as defined earlier.

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