Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questo argomento vengono illustrati i dettagli di implementazione di Windows Communication Foundation (WCF) per il protocollo di messaggistica WS-Reliable febbraio 2005 (versione 1.0) necessario per l'interoperabilità tramite il trasporto HTTP. WCF segue la specifica di messaggistica WS-Reliable con i vincoli e i chiarimenti illustrati in questo argomento. Si noti che il protocollo WS-ReliableMessaging versione 1.0 viene implementato a partire da WinFX.
Il protocollo di WS-Reliable Messaging di febbraio 2005 viene implementato in WCF da ReliableSessionBindingElement.
Per praticità, l'argomento usa i ruoli seguenti:
"Iniziatore: il client che avvia la creazione della sequenza di messaggi WS-Reliable"
Risponditore: il servizio che riceve le richieste dell'iniziatore
Questo documento utilizza i prefissi e i namespace nella tabella seguente.
Prefisso | Namespace |
---|---|
wsrm | http://schemas.xmlsoap.org/ws/2005/02/rm |
netrm | http://schemas.microsoft.com/ws/2006/05/rm |
s | http://www.w3.org/2003/05/soap-envelope |
wsa | http://schemas.xmlsoap.org/ws/2005/08/addressing |
wsse | http://docs.oasis-open.org/wss/2004/01/oasis-200401-wssecurity-secext-1.0.xsd |
Messaggistica
Messaggi di definizione della sequenza
WCF implementa CreateSequence
e CreateSequenceResponse
messaggi per stabilire una sequenza di messaggi affidabile. Si applicano i vincoli seguenti:
B1101: l'iniziatore WCF non genera l'elemento Facoltativo Expires nel
CreateSequence
messaggio o, nei casi in cui ilCreateSequence
messaggio contiene unOffer
elemento, l'elemento facoltativoExpires
nell'elementoOffer
.B1102: quando si accede al
CreateSequence
messaggio, WCFResponder
invia e riceve entrambiExpires
gli elementi, se esistenti, ma non usa i relativi valori.
WS-Reliable Messaggistica introduce il Offer
meccanismo per stabilire le due sequenze correlate viceversa che formano una sessione.
R1103: se
CreateSequence
contiene unOffer
elemento, il risponditore di messaggistica affidabile deve accettare la sequenza e rispondere conCreateSequenceResponse
che contiene unwsrm:Accept
elemento, formando due sequenze viceversa correlate o rifiutando laCreateSequence
richiesta.R1104:
SequenceAcknowledgement
e i messaggi dell'applicazione che passano sulla sequenza opposta devono essere inviati al riferimento dell'endpoint diReplyTo
CreateSequence
.R1105:
AcksTo
eReplyTo
i riferimenti agli endpoint inCreateSequence
devono avere valori di indirizzo che corrispondono a livello di byte.Il risponditore WCF verifica che la parte URI degli EPR
AcksTo
eReplyTo
sia identica prima di creare una sequenza.R1106:
AcksTo
eReplyTo
i riferimenti agli endpoint inCreateSequence
devono avere lo stesso set di parametri di riferimento.WCF non impone, ma presuppone che [parametri di riferimento] di
AcksTo
eReplyTo
suCreateSequence
siano identici e utilizza [parametri di riferimento] dalReplyTo
riferimento dell'endpoint per riconoscimenti e messaggi di sequenza opposti.R1107: Quando vengono stabilite due sequenze inverse usando il meccanismo
Offer
,SequenceAcknowledgement
e i messaggi dell'applicazione che passano su sequenze inverse devono essere inviati al riferimento dell'endpointReplyTo
diCreateSequence
.R1108: Quando vengono stabilite due sequenze inverse usando il meccanismo Offer, la proprietà
[address]
dell'elemento figlio Endpoint Referencewsrm:AcksTo
dell'elementowsrm:Accept
diCreateSequenceResponse
deve corrispondere byte per byte all'URI di destinazione dell'oggettoCreateSequence
.R1109: quando vengono stabilite due sequenze opposte usando il
Offer
meccanismo, i messaggi inviati dall'iniziatore e i riconoscimenti ai messaggi da parte del risponditore devono essere inviati allo stesso riferimento endpoint.WCF usa WS-Reliable Messaggistica per stabilire sessioni affidabili tra l'iniziatore e il risponditore. L'implementazione della messaggistica WS-Reliable WCF offre una sessione affidabile per modelli di messaggistica unidirezionale, request-reply e full duplex. Il meccanismo di messaggistica
Offer
di WS-Reliable suCreateSequence
/CreateSequenceResponse
consente di stabilire due sequenze viceversa correlate e fornisce un protocollo di sessione adatto per tutti gli endpoint del messaggio. Poiché WCF fornisce una garanzia di sicurezza per tale sessione, inclusa la protezione end-to-end per l'integrità della sessione, è pratico assicurarsi che i messaggi destinati alla stessa parte arrivino alla stessa destinazione. In questo modo è anche possibile eseguire il piggy-backing degli acknowledgement di sequenza nei messaggi dell'applicazione. Pertanto, i vincoli R1104, R1105 e R1108 si applicano a WCF.
Esempio di messaggio CreateSequence
.
<s:Envelope>
<s:Header>
<a:Action s:mustUnderstand="1">
http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence
</a:Action>
<a:ReplyTo>
<a:Address>
http://Business456.com/clientA
</a:Address>
</a:ReplyTo>
<a:MessageID>
urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
</a:MessageID>
<a:To s:mustUnderstand="1">
http://Business456.com/clientA
</a:To>
</s:Header>
<s:Body>
<wsrm:CreateSequence>
<wsrm:AcksTo>
<wsa:Address>
http://Business456.com/clientA
</wsa:Address>
</wsrm:AcksTo>
<wsrm:Offer>
<wsrm:Identifier>
urn:uuid:0afb8d36-bf26-4776-b8cf-8c91fddb5496
</wsrm:Identifier>
</wsrm:Offer>
</wsrm:CreateSequence>
</s:Body>
</s:Envelope>
Esempio di messaggio CreateSequenceResponse
.
<s:Envelope>
<s:Header>
<a:Action s:mustUnderstand="1">
http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequenceResponse
</a:Action>
<a:RelatesTo>
urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
</a:RelatesTo>
<a:To s:mustUnderstand="1">
http://Business456.com/clientA
</a:To>
</s:Header>
<s:Body>
<wsrm:CreateSequenceResponse>
<Identifier>
urn:uuid:eea0a36c-b38a-43e8-8c76-2fabe2d76386
</Identifier>
<Accept>
<AcksTo>
<a:Address>
http://BusinessABC.com/serviceA
</a:Address>
</AcksTo>
</Accept>
</wsrm:CreateSequenceResponse>
</s:Body>
</s:Envelope>
Sequenza
Di seguito è riportato un elenco di vincoli applicabili alle sequenze:
B1201:WCF genera e accede ai numeri di sequenza non superiori
xs:long
al valore inclusivo massimo di 9223372036854775807.B1202:WCF genera sempre un ultimo messaggio con corpo vuoto con l'URI dell'azione di
http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage
.B1203: WCF riceve e recapita un messaggio con un'intestazione Sequence che contiene un elemento
LastMessage
, purché l'URI dell'azione non siahttp://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage
.
Un esempio di intestazione di sequenza.
<wsrm:Sequence>
<wsrm:Identifier>
urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
</wsrm:Identifier>
<wsrm:MessageNumber>
10
</wsrm:MessageNumber>
<wsrm:LastMessage/>
</wsrm:Sequence>
Intestazione AckRequested
WCF usa l'header AckRequested
come un meccanismo keep-alive. WCF non genera l'elemento facoltativo MessageNumber
. Quando si riceve un messaggio con un'intestazione AckRequested
che contiene l'elemento MessageNumber
, WCF ignora il MessageNumber
valore dell'elemento, come illustrato nell'esempio seguente.
<wsrm:AckRequested>
<wsrm:Identifier>
urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
</wsrm:Identifier>
</wsrm:AckRequested>
Intestazione di Conferma della Sequenza
WCF usa un meccanismo piggy-back per i riconoscimenti di sequenze forniti nella messaggistica WS-Reliable.
R1401: quando vengono stabilite due sequenze opposte usando il
Offer
meccanismo, l'intestazioneSequenceAcknowledgement
può essere inclusa in qualsiasi messaggio dell'applicazione trasmesso al destinatario previsto.B1402: quando WCF deve generare un acknowledgement prima di ricevere messaggi di sequenza ,ad esempio per soddisfare un
AckRequested
messaggio, WCF genera un'intestazioneSequenceAcknowledgement
contenente l'intervallo 0-0, come illustrato nell'esempio seguente.<wsrm:SequenceAcknowledgement> <wsrm:Identifier> urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36 </wsrm:Identifier> <wsrm:AcknowledgementRange Upper="0" Lower="0"/> </wsrm:SequenceAcknowledgement>
B1403: WCF non genera intestazioni
SequenceAcknowledgement
che contengono un elementoNack
, ma supporta elementiNack
.
errori WS-ReliableMessaging
Di seguito è riportato un elenco di vincoli che si applicano all'implementazione WCF dei guasti di messaggistica di WS-Reliable.
B1501: WCF non genera
MessageNumberRollover
errori.L'endpoint B1502:WCF può generare
CreateSequenceRefused
errori come descritto nella specifica.B1503:Quando l'endpoint del servizio raggiunge il limite di connessione e non è in grado di elaborare nuove connessioni, WCF genera un codice secondario di errore aggiuntivo
CreateSequenceRefused
,netrm:ConnectionLimitReached
, come illustrato nell'esempio seguente.<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>
errori WS-Addressing
Poiché WS-Reliable Messaging usa WS-Addressing, l'implementazione di WCF WS-Reliable Messaging può generare errori WS-Addressing. In questa sezione vengono illustrati gli errori WS-Addressing generati in modo esplicito da WCF a livello di messaggistica WS-Reliable:
B1601:WCF genera l'intestazione di indirizzamento dei messaggi di errore obbligatoria quando si verifica una delle condizioni seguenti:
Manca un'intestazione
Sequence
e un'intestazioneAction
.Al messaggio
CreateSequence
manca un'intestazioneMessageId
.Al messaggio
CreateSequence
manca un'intestazioneReplyTo
.
B1602:WCF genera l'azione di errore non supportata in risposta a un messaggio che manca un'intestazione
Sequence
e ha un'intestazioneAction
non riconosciuta nella specifica di messaggistica WS-Reliable.B1603: WCF genera l'errore Endpoint Unavailable per indicare che l'endpoint non elabora la sequenza in base all'esame degli header di indirizzamento del messaggio
CreateSequence
.
La composizione del protocollo
Composizione con WS-Addressing
WCF supporta due versioni di WS-Addressing: WS-Addressing 2004/08 [WS-ADDR] e W3C WS-Addressing 1.0 Recommendations [WS-ADDR-CORE] e [WS-ADDR-SOAP].
Sebbene la specifica di WS-Reliable Messaging menzioni solo WS-Addressing 2004/08, non limita l'uso della versione WS-Addressing. Di seguito è riportato un elenco di vincoli applicabili a WCF:
R2101: Sia WS-Addressing 2004/08 che WS-Addressing 1.0 possono essere usati con WS-Reliable Messaging.
R2102: Una singola versione di WS-Addressing deve essere usata in una determinata sequenza di messaggistica WS-Reliable o in una coppia di sequenze converse correlate tramite il meccanismo
wsrm:Offer
.
Composizione con SOAP
WCF supporta l'uso di SOAP 1.1 e SOAP 1.2 con WS-Reliable Messaggistica.
Composizione con WS-Security e WS-SecureConversation
WCF fornisce protezione per le sequenze di messaggistica WS-Reliable tramite trasporto sicuro (HTTPS), composizione con WS-Security e composizione con WS-Secure Conversazione. Di seguito è riportato un elenco di vincoli applicabili a WCF:
R2301:Per proteggere l'integrità di una sequenza di messaggistica WS-Reliable oltre all'integrità e alla riservatezza dei singoli messaggi, WCF richiede che sia necessario usare WS-Secure Conversazione.
La sessione di conversazioneAWS-Secure deve essere stabilita prima di stabilire le sequenze di messaggistica WS-Reliable.
R2303: se la durata della sequenza di messaggistica WS-Reliable supera la durata dell'istanza di conversazione di WS-Secure, l'oggetto
SecurityContextToken
creato utilizzando WS-Secure Conversazione deve essere rinnovato utilizzando l'associazione di rinnovo conversazione corrispondente WS-Secure.B2304:WS-Reliable una sequenza di messaggistica o una coppia di sequenze correlate tra loro sono sempre associate a una singola sessione di WS-SecureConversation.
L'origine WCF genera l'elemento
wsse:SecurityTokenReference
nella sezione di estendibilità del messaggioCreateSequence
.R2305:Quando composto con WS-Secure Conversazione, un
CreateSequence
messaggio deve contenere l'elementowsse:SecurityTokenReference
.
WS-Reliable messaggistica WS-Policy asserzione
WCF usa WS-Reliable Messaggistica WS-Policy Dichiarazione wsrm:RMAssertion
per descrivere le capacità degli endpoint. Di seguito è riportato un elenco di vincoli applicabili a WCF:
B3001: WCF associa
wsrm:RMAssertion
l'asserzione WS-Policy agli elementiwsdl:binding
. WCF supporta sia allegati agli elementiwsdl:binding
ewsdl:port
.B3002: WCF supporta le seguenti proprietà facoltative dell'asserzione di messaggistica WS-Reliable e consente di controllarle su WCF
ReliableMessagingBindingElement
.wsrm:InactivityTimeout
wsrm:AcknowledgementInterval
Di seguito è riportato un esempio.
<wsrm:RMAssertion> <wsrm:InactivityTimeout Milliseconds="600000" /> <wsrm:AcknowledgementInterval Milliseconds="200" /> </wsrm:RMAssertion>
Estensione di messaggistica di controllo del flusso WS-Reliable
WCF usa l'estendibilità alla messaggistica di WS-Reliable per fornire un controllo opzionale e più rigoroso sul flusso dei messaggi di sequenza.
Il controllo flusso è abilitato impostando la ReliableSessionBindingElement.FlowControlEnabled proprietà su true
. Di seguito è riportato un elenco di vincoli applicabili a WCF:
B4001: quando è abilitato il controllo del flusso di messaggistica affidabile, WCF genera un
netrm:BufferRemaining
elemento nell'estendibilità dell'elemento dell'intestazioneSequenceAcknowledgement
.B4002: quando è abilitato il controllo del flusso di messaggistica affidabile, WCF non richiede che un
netrm:BufferRemaining
elemento sia presente nell'intestazioneSequenceAcknowledgement
, come illustrato nell'esempio seguente.<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 usa
netrm:BufferRemaining
per indicare quanti nuovi messaggi la destinazione reliable messaging può memorizzare nel buffer.B4004:WCF Reliable Messaging Service limita il numero di messaggi trasmessi quando l'applicazione di destinazione Reliable Messaging non può ricevere rapidamente messaggi. La destinazione Reliable Messaging memorizza nel buffer i messaggi e il valore dell'elemento scende a 0.
B4005: WCF genera
netrm:BufferRemaining
valori interi compresi tra 0 e 4096 inclusi, e legge i valori interi compresi tra 0 exs:int
ilmaxInclusive
valore 214748364 inclusi.
Modelli di Scambio messaggi
In questa sezione viene descritto il comportamento di WCF quando la messaggistica WS-Reliable viene utilizzata per diversi modelli di scambio di messaggi. Per ogni modello di Scambio messaggi vengono considerati i due scenari di distribuzione seguenti:
Iniziatore non indirizzabile: l'iniziatore si trova dietro il firewall; Il risponditore può recapitare messaggi all'iniziatore solo nelle risposte HTTP.
Iniziatore indirizzabile: sia l'iniziatore che il risponditore possono ricevere richieste HTTP; in altre parole, è possibile stabilire due connessioni HTTP inverse.
Iniziatore unidirezionale non indirizzabile
Vincolo
WCF fornisce un modello di scambio di messaggi unidirezionale usando una sequenza su un canale HTTP. WCF usa le richieste HTTP per trasmettere tutti i messaggi dall'RMS all'RMD e dalla risposta HTTP per trasmettere tutti i messaggi dall'RMD all'RMS.
CreateSequence Exchange
L'iniziatore WCF genera un CreateSequence
messaggio senza proposta. Il risponditore WCF garantisce che CreateSequence
non abbia alcuna offerta prima di creare una sequenza. Il risponditore WCF risponde alla CreateSequence
richiesta con un CreateSequenceResponse
messaggio.
Riconoscimento di Sequenza
L'iniziatore WCF elabora i riconoscimenti sulla risposta di tutti i messaggi, ad eccezione del messaggio CreateSequence
e dei messaggi di errore. Il risponditore WCF genera sempre un riconoscimento autonomo nella risposta sia alla sequenza AckRequested
che ai messaggi.
Messaggio di terminazione della sequenza
WCF considera TerminateSequence
un'operazione unidirezionale, ovvero la risposta HTTP ha un corpo vuoto e un codice di stato HTTP 202.
Iniziatore unidirezionale indirizzabile
Vincolo
WCF fornisce un modello di scambio di messaggi unidirezionale usando una sequenza su un canale HTTP in ingresso e in uscita. WCF usa le richieste HTTP per trasmettere tutti i messaggi. Tutte le risposte HTTP hanno un corpo vuoto e un codice di stato HTTP 202.
CreateSequence Exchange
L'iniziatore WCF genera un CreateSequence
messaggio senza proposta. Il risponditore WCF garantisce che CreateSequence
non abbia alcuna offerta prima di creare una sequenza. Il risponditore WCF trasmette il CreateSequenceResponse
messaggio in una richiesta HTTP indirizzata con il riferimento all'endpoint ReplyTo
.
Iniziatore Duplex, Indirizzabile
Vincolo
WCF fornisce un modello di scambio di messaggi bidirezionale completamente asincrono usando due sequenze su un canale HTTP in ingresso e in uscita. WCF usa le richieste HTTP per trasmettere tutti i messaggi. Tutte le risposte HTTP hanno un corpo vuoto e un codice di stato HTTP 202.
CreateSequence Exchange
L'iniziatore WCF genera un messaggio CreateSequence
con un'offerta. Il risponditore WCF garantisce che il CreateSequence
abbia un'offerta prima di creare una sequenza. WCF invia il CreateSequenceResponse
nella richiesta HTTP indirizzata al riferimento dell'endpoint di CreateSequence
di ReplyTo
.
La durata della sequenza
WCF considera le due sequenze come un'unica sessione completamente duplex.
Quando si genera un errore che genera un errore in una sequenza, WCF prevede che l'endpoint remoto generi errori in entrambe le sequenze. Durante la lettura di un errore che genera un errore in una sequenza, WCF genera errori in entrambe le sequenze.
WCF può chiudere la sequenza in uscita e continuare a elaborare i messaggi nella sequenza in ingresso. Al contrario, WCF può elaborare la chiusura della sequenza in ingresso e continuare a inviare messaggi nella sequenza in uscita.
Iniziatore Richiesta-Risposta, Non Indirizzabile
Vincolo
WCF fornisce un modello di scambio di messaggi unidirezionale e request-reply usando due sequenze su un canale HTTP. WCF usa le richieste HTTP per trasmettere i messaggi della sequenza di richieste e usa le risposte HTTP per trasmettere i messaggi della sequenza di risposta.
CreateSequence Exchange
L'iniziatore WCF genera un messaggio CreateSequence
con un'offerta. Il risponditore WCF garantisce che il CreateSequence
abbia un'offerta prima di creare una sequenza. Il risponditore WCF risponde alla CreateSequence
richiesta con un CreateSequenceResponse
messaggio.
Messaggio unidirezionale
Per completare correttamente un protocollo di scambio di messaggi unidirezionale, l'iniziatore WCF trasmette un messaggio di sequenza di richieste sulla richiesta HTTP e riceve un messaggio autonomo SequenceAcknowledgement
sulla risposta HTTP. Il SequenceAcknowledgement
deve riconoscere il messaggio trasmesso.
Il risponditore WCF può rispondere alla richiesta con un acknowledgement, un errore o una risposta con un corpo vuoto e un codice di stato HTTP 202.
Messaggi bidirezionali
Per completare correttamente un protocollo di scambio di messaggi bidirezionale, l'iniziatore WCF trasmette un messaggio di sequenza di richieste sulla richiesta HTTP e riceve un messaggio di sequenza di risposta sulla risposta HTTP. La risposta deve contenere un SequenceAcknowledgement
riconoscimento del messaggio della sequenza di richieste trasmesso.
Il risponditore WCF può rispondere alla richiesta con una risposta dell'applicazione, un errore o una risposta con un corpo vuoto e un codice di stato HTTP 202.
A causa della presenza di messaggi unidirezionali e della tempistica della risposta dell'applicazione, il numero di sequenza del messaggio di richiesta e il numero di sequenza della risposta non hanno alcuna correlazione.
Ripetizione di risposte
WCF si basa sulla correlazione di richiesta/risposta HTTP per la correlazione del protocollo di scambio di messaggi bidirezionale. Per questo motivo, l'iniziatore WCF non smette di ripetere un messaggio di sequenza di richieste quando il messaggio della sequenza di richiesta viene riconosciuto, ma piuttosto quando la risposta HTTP contiene un acknowledgement, un messaggio utente o un errore. Il risponditore WCF ritenta le risposte nella parte della richiesta HTTP della richiesta a cui è correlata la risposta.
LastMessage Exchange
L'iniziatore WCF genera e trasmette un ultimo messaggio con corpo vuoto nella sezione della richiesta HTTP. WCF richiede una risposta, ma ignora il messaggio di risposta effettivo. Il risponditore WCF risponde all'ultimo messaggio con corpo vuoto della sequenza di richiesta con l'ultimo messaggio con corpo vuoto della sequenza di risposta.
Se il risponditore WCF riceve un messaggio finale in cui l'URI dell'azione non è http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage
, WCF risponde con un messaggio finale. Nel caso di un protocollo di scambio di messaggi bidirezionale, l'ultimo messaggio contiene il messaggio dell'applicazione; nel caso di un protocollo di scambio di messaggi unidirezionale, l'ultimo messaggio è vuoto.
Il risponditore WCF non richiede una conferma per il messaggio finale senza contenuto della sequenza di risposta.
TerminateSequence Exchange
Quando tutte le richieste hanno ricevuto una risposta valida, l'iniziatore WCF genera e trasmette il messaggio della sequenza di richieste nella fase di TerminateSequence
richiesta HTTP. WCF richiede una risposta, ma ignora il messaggio di risposta effettivo. Il componente WCF risponde ai messaggi della sequenza di richiesta TerminateSequence
con i messaggi della sequenza di risposta TerminateSequence
.
In una sequenza di arresto normale, entrambi i TerminateSequence
messaggi contengono un intervallo SequenceAcknowledgement
completo.
Richiesta/Risposta, Iniziatore Indirizzabile
Vincolo
WCF fornisce un modello di scambio di messaggi di richiesta-risposta usando due sequenze su un canale HTTP in ingresso e in uscita. WCF usa le richieste HTTP per trasmettere tutti i messaggi. Tutte le risposte HTTP hanno un corpo vuoto e un codice di stato HTTP 202.
CreateSequence Exchange
L'iniziatore WCF genera un messaggio CreateSequence
con un'offerta. Il risponditore WCF garantisce che il CreateSequence
abbia un'offerta prima di creare una sequenza. WCF invia il CreateSequenceResponse
nella richiesta HTTP indirizzata al riferimento dell'endpoint di CreateSequence
di ReplyTo
.
Correlazione richiesta/risposta
L'iniziatore WCF garantisce che tutti i messaggi di richiesta dell'applicazione contengano un riferimento all'endpoint MessageId
e un riferimento all'endpoint ReplyTo
. L'iniziatore WCF applica il riferimento all'endpoint del messaggio CreateSequence
su ogni messaggio di richiesta ReplyTo
. Il risponditore WCF richiede che i messaggi di richiesta in ingresso presentino un MessageId
e un ReplyTo
. Il risponditore WCF garantisce che l'URI del riferimento all'endpoint "CreateSequence
" e tutti i messaggi di richiesta dell'applicazione siano identici.