Delen via


Reliable Messaging Protocol versie 1.0

In dit onderwerp worden de implementatiedetails van Windows Communication Foundation (WCF) beschreven voor het WS-Reliable Messaging-protocol van februari 2005 (versie 1.0) dat nodig is voor interoperation met behulp van het HTTP-transport. WCF volgt de WS-Reliable Messaging-specificatie met de beperkingen en verduidelijkingen die in dit onderwerp worden uitgelegd. Houd er rekening mee dat het WS-ReliableMessaging-protocol versie 1.0 wordt geïmplementeerd vanaf winFX.

Het WS-Reliable Messaging-protocol van februari 2005 wordt geïmplementeerd in WCF door de ReliableSessionBindingElement.

Voor het gemak gebruikt het onderwerp de volgende rollen:

  • Initiator: de client waarmee WS-Reliable Message-reeks wordt gemaakt

  • Responder: de service die de aanvragen van de initiator ontvangt

In dit document worden de voorvoegsels en naamruimten in de volgende tabel gebruikt.

Voorvoegsel Naamruimte
Wsrm http://schemas.xmlsoap.org/ws/2005/02/rm
netrm http://schemas.microsoft.com/ws/2006/05/rm
s http://www.w3.org/2003/05/soap-envelope
wsa http://schemas.xmlsoap.org/ws/2005/08/addressing
Wsse http://docs.oasis-open.org/wss/2004/01/oasis-200401-wssecurity-secext-1.0.xsd

Berichten

Berichten van sequentie-instelling

WCF implementeert CreateSequence en CreateSequenceResponse berichten om een betrouwbare berichtenreeks tot stand te brengen. De volgende beperkingen zijn van toepassing:

  • B1101: De WCF-initiator genereert niet het optionele element Verloopt in het CreateSequence bericht of, in de gevallen waarin het CreateSequence bericht een Offer element bevat, het optionele Expires element in het Offer element.

  • B1102: Bij het openen van het CreateSequence bericht verzendt en ontvangt de WCFResponder beide Expires elementen als deze bestaan, maar gebruikt de bijbehorende waarden niet.

WS-Reliable Messaging introduceert het mechanisme voor het Offer tot stand brengen van de twee gecorreleerde reeksen die een sessie vormen.

  • R1103: Als CreateSequence dit een Offer element bevat, moet de Reliable Messaging Responder de reeks accepteren en erop reageren met CreateSequenceResponse een wsrm:Accept element, waarbij twee gecorreleerde omgekeerde reeksen worden gevormd of de CreateSequence aanvraag wordt geweigerd.

  • R1104: SequenceAcknowledgement en toepassingsberichten die op de omgekeerde volgorde stromen, moeten worden verzonden naar de ReplyTo eindpuntverwijzing van de CreateSequence.

  • R1105: AcksTo en ReplyTo eindpuntverwijzingen in de CreateSequence moeten adreswaarden bevatten die overeenkomen met de octet.

    De WCF Responder controleert of het URI-gedeelte van de AcksTo en ReplyTo EPR's identiek zijn voordat een reeks wordt gemaakt.

  • R1106: AcksTo en ReplyTo eindpuntverwijzingen in de CreateSequence moeten dezelfde set referentieparameters hebben.

    WCF dwingt niet af, maar gaat ervan uit dat [referentieparameters] van AcksTo en ReplyTo op CreateSequence identiek zijn en [verwijzingsparameters] van ReplyTo eindpuntverwijzing gebruikt voor bevestigingen en omgekeerde reeksberichten.

  • R1107: Wanneer er twee omgekeerde reeksen worden vastgesteld met behulp van het Offer mechanisme en SequenceAcknowledgement toepassingsberichten die op omgekeerde reeksen stromen, moeten worden verzonden naar de ReplyTo eindpuntverwijzing van de CreateSequence.

  • R1108: Wanneer twee omgekeerde reeksen worden vastgesteld met behulp van het mechanisme Aanbieding, moet de [address] eigenschap van het wsrm:AcksTo onderliggende element eindpuntverwijzing van het element van het wsrm:AcceptCreateSequenceResponse element bytegewijs overeenkomen met de doel-URI van de CreateSequence.

  • R1109: Wanneer er twee omgekeerde reeksen worden vastgesteld met behulp van het Offer mechanisme, moeten berichten die door initiator worden verzonden en bevestigingen aan berichten door de responder worden verzonden naar dezelfde eindpuntreferentie.

    WCF maakt gebruik van WS-Reliable Messaging om betrouwbare sessies tot stand te brengen tussen de initiator en responder. WS-Reliable Messaging-implementatie van WCF biedt een betrouwbare sessie voor eenrichtings-, aanvraag-antwoord- en full duplex-berichtenpatronen. Met het WS-Reliable Messaging-mechanisme OfferCreateSequence/CreateSequenceResponse kunt u twee gecorreleerde omgekeerde reeksen tot stand brengen en een sessieprotocol bieden dat geschikt is voor alle berichteindpunten. Omdat WCF een beveiligingsgarantie biedt voor een dergelijke sessie, inclusief end-to-end-beveiliging voor sessie-integriteit, is het praktisch om ervoor te zorgen dat berichten die zijn bedoeld voor dezelfde partij op dezelfde bestemming aankomen. Hierdoor kan ook piggy-backing van reeksbevestigingen voor toepassingsberichten worden toegestaan. Daarom zijn beperkingen R1104, R1105 en R1108 van toepassing op WCF.

Een voorbeeld van een CreateSequence bericht.

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

Een voorbeeld van een CreateSequenceResponse bericht.

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

Sequence

Hier volgt een lijst met beperkingen die van toepassing zijn op reeksen:

  • B1201:WCF genereert en opent volgnummers die niet hoger zijn dan xs:longde maximale inclusieve waarde, 9223372036854775807.

  • B1202:WCF genereert altijd een leeg bericht met de actie-URI van http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage.

  • B1203: WCF ontvangt en levert een bericht met een reeksheader die een LastMessage element bevat zolang de actie-URI niet http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessageis.

Een voorbeeld van een reekskoptekst.

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

AckRequested Header

WCF maakt gebruik van AckRequested Header als een keep-alive-mechanisme. WCF genereert het optionele MessageNumber element niet. Wanneer u een bericht ontvangt met een AckRequested koptekst die het MessageNumber element bevat, negeert WCF de waarde van het MessageNumber element, zoals wordt weergegeven in het volgende voorbeeld.

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

SequenceAcknowledgement-header

WCF maakt gebruik van piggy-back-mechanisme voor reeksbevestigingen die worden geleverd in WS-Reliable Messaging.

  • R1401: Wanneer er twee omgekeerde reeksen worden vastgesteld met behulp van het Offer mechanisme, kan de SequenceAcknowledgement header worden opgenomen in elk toepassingsbericht dat naar de beoogde ontvanger wordt verzonden.

  • B1402: Wanneer WCF een bevestiging moet genereren voordat u eventuele reeksberichten ontvangt (bijvoorbeeld om aan een AckRequested bericht te voldoen), genereert WCF een SequenceAcknowledgement koptekst die het bereik 0-0 bevat, zoals wordt weergegeven in het volgende voorbeeld.

    <wsrm:SequenceAcknowledgement>
      <wsrm:Identifier>
        urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
      </wsrm:Identifier>
      <wsrm:AcknowledgementRange Upper="0" Lower="0"/>
    </wsrm:SequenceAcknowledgement>
    
  • B1403: WCF genereert SequenceAcknowledgement geen headers die een Nack element bevatten, maar ondersteunt Nack elementen.

WS-ReliableMessaging-fouten

Hier volgt een lijst met beperkingen die van toepassing zijn op de WCF-implementatie van WS-Reliable Messaging-fouten:

  • B1501: WCF genereert MessageNumberRollover geen fouten.

  • B1502:WCF-eindpunt kan fouten genereren CreateSequenceRefused zoals beschreven in de specificatie.

  • B1503:Wanneer het service-eindpunt de verbindingslimiet bereikt en nieuwe verbindingen niet kan verwerken, genereert WCF een extra CreateSequenceRefused foutsubcode, netrm:ConnectionLimitReachedzoals wordt weergegeven in het volgende voorbeeld.

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

WS-adresseringsfouten

Omdat WS-Reliable Messaging gebruikmaakt van WS-Addressing, kan WS-Reliable Messaging-implementatie WS-Reliable Messaging fouten genereren. In deze sectie worden de WS-Adresseringsfouten beschreven die wcF expliciet genereert op de WS-Reliable Messaging-laag:

  • B1601:WCF genereert de berichtadresseringskop die is vereist als een van de volgende waar is:

    • Er ontbreekt een bericht in een Sequence koptekst en een Action koptekst.

    • Er CreateSequence ontbreekt een bericht in een MessageId koptekst.

    • Er CreateSequence ontbreekt een bericht in een ReplyTo koptekst.

  • B1602:WCF genereert de foutactie niet ondersteund als antwoord op een bericht dat een Sequence header ontbreekt en een header heeft Action die niet wordt herkend in de WS-Reliable Messaging-specificatie.

  • B1603:WCF genereert het fouteindpunt niet beschikbaar om aan te geven dat het eindpunt de volgorde niet verwerkt op basis van het onderzoek van de adresseringsheaders van het CreateSequence bericht.

Protocolsamenstelling

Samenstelling met WS-Adressering

WCF ondersteunt twee versies van WS-Addressing: WS-Addressing 2004/08 [WS-ADDR] en W3C WS-Addressing 1.0 Aanbevelingen [WS-ADDR-CORE] en [WS-ADDR-SOAP].

Hoewel in de WS-Reliable Messaging-specificatie alleen WS-Addressing 2004/08 wordt vermeld, wordt de WS-Adresseringsversie niet beperkt tot gebruik. Hier volgt een lijst met beperkingen die van toepassing zijn op WCF:

  • R2101:WS-Addressing 2004/08 en WS-Addressing 1.0 kunnen worden gebruikt met WS-Reliable Messaging.

  • R2102:Een enkele versie van WS-Addressing moet worden gebruikt in een bepaalde WS-Reliable Messaging-reeks of een paar omgekeerde reeksen die zijn gecorreleerd met behulp van het wsrm:Offer mechanisme.

Samenstelling met SOAP

WCF ondersteunt het gebruik van zowel SOAP 1.1 als SOAP 1.2 met WS-Reliable Messaging.

Samenstelling met WS-Security en WS-SecureConversation

WCF biedt bescherming voor WS-Reliable Messaging-reeksen met behulp van secure Transport (HTTPS), samenstelling met WS-Security en samenstelling met WS-Secure Conversation. Hier volgt een lijst met beperkingen die van toepassing zijn op WCF:

  • R2301:Om de integriteit van een WS-Reliable Messaging-reeks te beschermen, naast de integriteit en vertrouwelijkheid van afzonderlijke berichten, moet WS-Secure Conversation worden gebruikt.

  • R2302:AWS-Secure Conversation-sessie moet tot stand worden gebracht voordat U WS-Reliable Messaging-reeks(en) tot stand hebt gebracht.

  • R2303: Als de levensduur van de WS-Reliable Messaging-reeks de levensduur van de WS-Secure-gesprekssessie overschrijdt, moet het SecurityContextToken bestaande gesprek met WS-Secure Conversation worden vernieuwd met behulp van de bijbehorende WS-Secure Conversation Renewal-binding.

  • B2304:WS-Reliable Messaging-reeks of een paar gecorreleerde omgekeerde reeksen zijn altijd gebonden aan één WS-SecureConversation-sessie.

    De WCF-bron genereert het wsse:SecurityTokenReference element in de sectie over de uitbreidbaarheid van het element van het CreateSequence bericht.

  • R2305:Wanneer een bericht is samengesteld met WS-Secure Conversation, moet een CreateSequence bericht het wsse:SecurityTokenReference element bevatten.

WS-Reliable Messaging WS-Policy Assertion

WCF maakt gebruik van WS-Reliable Messaging WS-Policy Assertion wsrm:RMAssertion om de mogelijkheden van eindpunten te beschrijven. Hier volgt een lijst met beperkingen die van toepassing zijn op WCF:

  • B3001: WCF koppelt wsrm:RMAssertion WS-Policy Assertion aan wsdl:binding elementen. WCF ondersteunt zowel bijlagen als wsdl:bindingwsdl:port elementen.

  • B3002: WCF ondersteunt de volgende optionele eigenschappen van WS-Reliable Messaging-assertie en biedt controle over deze eigenschappen op de WCFReliableMessagingBindingElement:

    • wsrm:InactivityTimeout

    • wsrm:AcknowledgementInterval

    Hier volgt een voorbeeld.

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

WS-reliable messaging-extensie voor stroombeheer

WCF maakt gebruik van WS-Reliable Messaging-uitbreidbaarheid om optionele extra strakkere controle over de sequentieberichtstroom te bieden.

Stroombeheer is ingeschakeld door de ReliableSessionBindingElement.FlowControlEnabled eigenschap in te stellen op true. Hier volgt een lijst met beperkingen die van toepassing zijn op WCF:

  • B4001: Wanneer Reliable Messaging Flow Control is ingeschakeld, genereert WCF een netrm:BufferRemaining element in de element-uitbreidbaarheid van de SequenceAcknowledgement header.

  • B4002: Wanneer Reliable Messaging Flow Control is ingeschakeld, is voor WCF geen element SequenceAcknowledgement in de header vereistnetrm:BufferRemaining, zoals wordt weergegeven in het volgende voorbeeld.

    <wsrm:SequenceAcknowledgement>
      <wsrm:Identifier>
        http://fabrikam123.com/abc
      </wsrm:Identifier>
      <wsrm:AcknowledgementRange Upper="1" Lower="1"/>
      <netrm:BufferRemaining>
        8
      </netrm:BufferRemaining>
    </wsrm:SequenceAcknowledgement>
    
  • B4003: WCF gebruikt netrm:BufferRemaining om aan te geven hoeveel nieuwe berichten de Reliable Messaging Destination kan bufferen.

  • B4004:De WCF Reliable Messaging-service beperkt het aantal berichten dat wordt verzonden wanneer de doeltoepassing Reliable Messaging geen berichten snel kan ontvangen. De Reliable Messaging-bestemming buffert berichten en de waarde van het element daalt naar 0.

  • B4005: WCF genereert netrm:BufferRemaining gehele getallen tussen 0 en 4096 inclusief en leest gehele getallen tussen 0 en xs:int's maxInclusive waarde 214748364 inclusief.

Berichtuitwisselingspatronen

In deze sectie wordt het gedrag van WCF beschreven wanneer WS-Reliable Messaging wordt gebruikt voor verschillende Berichtuitwisselingspatronen. Voor elk Message Exchange-patroon worden de volgende twee implementatiescenario's overwogen:

  • Niet-adresseerbare initiator: Initiator bevindt zich achter de firewall; Responder kan berichten alleen aan Initiator bezorgen op HTTP-antwoorden.

  • Adresseerbare initiator: initiator en responder kunnen beide HTTP-aanvragen verzenden; met andere woorden, twee omgekeerde HTTP-verbindingen kunnen tot stand worden gebracht.

Eenmalige, niet-adresseerbare initiator

Binding

WCF biedt een eenrichtingspatroon voor het uitwisselen van berichten met één reeks via één HTTP-kanaal. WCF gebruikt de HTTP-aanvragen om alle berichten van de RMS naar de RMD en het HTTP-antwoord te verzenden om alle berichten van de RMD naar de RMS te verzenden.

CreateSequence Exchange

De WCF-initiator genereert een CreateSequence bericht zonder aanbieding. De WCF Responder zorgt ervoor dat de CreateSequence aanbieding niet beschikbaar is voordat u een reeks maakt. De WCF Responder beantwoordt de CreateSequence aanvraag met een CreateSequenceResponse bericht.

SequenceAcknowledgement

De WCF Initiator verwerkt bevestigingen voor het beantwoorden van alle berichten, met uitzondering van het bericht en de CreateSequence foutberichten. De WCF Responder genereert altijd een zelfstandige bevestiging in het antwoord op zowel volgorde AckRequested als berichten.

Beëindigingsbericht

WCF wordt behandeld als een eenrichtingsbewerking TerminateSequence , wat betekent dat het HTTP-antwoord een lege hoofdtekst en HTTP 202-statuscode heeft.

Eén manier, adresseerbare initiator

Binding

WCF biedt een eenrichtingspatroon voor het uitwisselen van berichten met behulp van één reeks via een binnenkomend en uitgaand Http-kanaal. WCF gebruikt de HTTP-aanvragen om alle berichten te verzenden. Alle HTTP-antwoorden hebben een lege hoofdtekst en HTTP 202-statuscode.

CreateSequence Exchange

De WCF-initiator genereert een CreateSequence bericht zonder aanbieding. De WCF Responder zorgt ervoor dat er CreateSequence geen aanbieding is voordat u een reeks maakt. De WCF Responder verzendt het CreateSequenceResponse bericht op een HTTP-aanvraag die is geadresseerd met de ReplyTo eindpuntreferentie.

Duplex, adresseerbare initiator

Binding

WCF biedt een volledig asynchroon tweerichtingsberichtuitwisselingspatroon met behulp van twee reeksen via een inkomend en uitgaand HTTP-kanaal. WCF gebruikt de HTTP-aanvragen om alle berichten te verzenden. Alle HTTP-antwoorden hebben een lege hoofdtekst en HTTP 202-statuscode.

CreateSequence Exchange

De WCF-initiator genereert een CreateSequence bericht met een aanbieding. De WCF Responder zorgt ervoor dat de CreateSequence aanbieding een aanbieding heeft voordat u een reeks maakt. WCF verzendt de CreateSequenceResponse op de HTTP-aanvraag die is geadresseerd aan de CreateSequenceReplyTo eindpuntreferentie.

Levensduur van reeks

WCF behandelt de twee reeksen als één volledig dubbelzijdige sessie.

Bij het genereren van een fout die één reeks fouten aangeeft, verwacht WCF dat het externe eindpunt beide reeksen fouteert. Bij het lezen van een fout die één reeks fouten maakt, worden beide reeksen door WCF-fouten uitgevoerd.

WCF kan de uitgaande volgorde sluiten en berichten blijven verwerken op de binnenkomende volgorde. Omgekeerd kan WCF de sluiting van de inkomende reeks verwerken en berichten blijven verzenden op de uitgaande volgorde.

Aanvraag-antwoord, niet-adresseerbare initiator

Binding

WCF biedt een eenrichtings- en aanvraagantwoord-berichtuitwisselingspatroon met behulp van twee reeksen via één HTTP-kanaal. WCF gebruikt de HTTP-aanvragen om de berichten van de aanvraagreeks te verzenden en gebruikt de HTTP-antwoorden om de berichten van de antwoordreeks te verzenden.

CreateSequence Exchange

De WCF-initiator genereert een CreateSequence bericht met een aanbieding. De WCF Responder zorgt ervoor dat de CreateSequence aanbieding een aanbieding heeft voordat u een reeks maakt. De WCF Responder beantwoordt de CreateSequence aanvraag met een CreateSequenceResponse bericht.

Eenrichtingsbericht

De WCF-initiator verzendt een aanvraagvolgordebericht op de HTTP-aanvraag en ontvangt een zelfstandig bericht op het HTTP-antwoord om een eenrichtingsprotocol SequenceAcknowledgement voor het uitwisselen van berichten te voltooien. Het SequenceAcknowledgement bericht moet worden bevestigd.

De WCF Responder kan de aanvraag beantwoorden met een bevestiging, een fout of een antwoord met een lege hoofdtekst en HTTP 202-statuscode.

Tweerichtingsberichten

De WCF-initiator verzendt een aanvraagvolgordebericht op de HTTP-aanvraag en ontvangt een antwoordreeksbericht op het HTTP-antwoord om een tweerichtingsuitwisselingsprotocol te voltooien. Het antwoord moet een SequenceAcknowledgement bevestiging bevatten van het verzoekreeksbericht dat wordt verzonden.

De WCF Responder kan de aanvraag beantwoorden met een toepassingsantwoord, een fout of een antwoord met een lege hoofdtekst en HTTP 202-statuscode.

Vanwege de aanwezigheid van berichten in één richting en de timing van antwoorden van toepassingen, heeft het volgnummer van het aanvraagreeksbericht en het volgnummer van het antwoordbericht geen correlatie.

Antwoorden opnieuw proberen

WCF is afhankelijk van http-aanvraag-antwoordcorrelatie voor correlatie van tweerichtingsberichtenuitwisselingsprotocollen. Daarom stopt de WCF-initiator niet met het opnieuw proberen van een aanvraagvolgordebericht wanneer het aanvraagvolgordebericht wordt bevestigd, maar wanneer het HTTP-antwoord een bevestiging, gebruikersbericht of fout bevat. De WCF Responder probeert antwoorden opnieuw uit te voeren op de HTTP-aanvraag van de aanvraag waarop het antwoord is gecorreleerd.

LastMessage Exchange

De WCF-initiator genereert en verzendt een leeg, laatste bericht op het HTTP-aanvraagbeen. WCF vereist een antwoord, maar negeert het werkelijke antwoordbericht. De WCF Responder reageert op het lege laatste bericht van de aanvraagreeks met het lege laatste bericht van de antwoordreeks.

Als de WCF Responder een laatste bericht ontvangt waarin de actie-URI niet http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessageis, reageert WCF met een laatste bericht. In het geval van een tweerichtingsprotocol voor het uitwisselen van berichten, draagt het laatste bericht het toepassingsbericht; in het geval van een eenrichtingsprotocol voor het uitwisselen van berichten is het laatste bericht leeg.

De WCF Responder vereist geen bevestiging voor het lege laatste bericht van de antwoordreeks.

TerminateSequence Exchange

Wanneer alle aanvragen een geldig antwoord hebben ontvangen, genereert en verzendt de WCF-initiator het bericht van TerminateSequence de aanvraagreeks op de HTTP-aanvraagvoet. WCF vereist een antwoord, maar negeert het werkelijke antwoordbericht. De WCF Responder beantwoordt het bericht van TerminateSequence de aanvraagreeks met het bericht van TerminateSequence de antwoordreeks.

In een normale afsluitvolgorde hebben beide TerminateSequence berichten een volledig bereik SequenceAcknowledgement.

Aanvraag/antwoord, adresseerbare initiator

Binding

WCF biedt een patroon voor het uitwisselen van berichten op aanvraag met behulp van twee reeksen via een binnenkomend en uitgaand HTTP-kanaal. WCF gebruikt de HTTP-aanvragen om alle berichten te verzenden. Alle HTTP-antwoorden hebben een lege hoofdtekst en HTTP 202-statuscode.

CreateSequence Exchange

De WCF-initiator genereert een CreateSequence bericht met een aanbieding. De WCF Responder zorgt ervoor dat de CreateSequence aanbieding een aanbieding heeft voordat u een reeks maakt. WCF verzendt de CreateSequenceResponse op de HTTP-aanvraag die is geadresseerd aan de CreateSequenceReplyTo eindpuntreferentie.

Correlatie van aanvragen/antwoorden

De WCF-initiator zorgt ervoor dat alle toepassingsaanvraagberichten een MessageId en een ReplyTo eindpuntreferentie hebben. De WCF-initiator past de eindpuntreferentie van ReplyTo het CreateSequence bericht toe op elk toepassingsaanvraagbericht. De WCF Responder vereist dat binnenkomende aanvraagberichten een MessageId en een ReplyTo. De WCF Responder zorgt ervoor dat de URI van de eindpuntreferentie van zowel de CreateSequence als alle toepassingsaanvraagberichten identiek zijn.