Protocolo de mensagens confiável versão 1.0
Este tópico aborda os detalhes de implementação do WCF (Windows Communication Foundation) para o protocolo WS-Reliable Messaging de fevereiro de 2005 (versão 1.0) necessário para interoperação usando o transporte HTTP. O WCF segue a especificação WS-Reliable Messaging com as restrições e esclarecimentos explicados neste tópico. Observe que o protocolo WS-ReliableMessaging versão 1.0 é implementado a partir do WinFX.
O protocolo WS-Reliable Messaging de fevereiro de 2005 é implementado no WCF pelo ReliableSessionBindingElement.
Para conveniência, o tópico usa as seguintes funções:
Iniciador: o cliente que inicia a criação da sequência de mensagens WS-Reliable
Respondente: o serviço que recebe as solicitações do iniciador
Este documento usa os prefixos e os namespaces na tabela a seguir.
Prefixo | 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 |
Mensagens
Mensagens de estabelecimento de sequência
O WCF implementa as mensagens CreateSequence
e CreateSequenceResponse
para estabelecer uma sequência de mensagens confiável. As seguintes restrições se aplicam:
B1101: o Iniciador do WCF não gera o elemento opcional Expires na mensagem
CreateSequence
ou, nos casos em que a mensagemCreateSequence
contém um elementoOffer
, o elemento opcionalExpires
no elementoOffer
.B1102: ao acessar a mensagem
CreateSequence
, o WCFResponder
enviará e receberá ambos os elementosExpires
se existirem, mas não usará seus valores.
WS-Reliable Messaging introduz o mecanismo Offer
para estabelecer as duas sequências correlacionadas inversas que formam uma sessão.
R1103: se
CreateSequence
contiver um elementoOffer
, o Respondente de Reliable Messaging deverá aceitar a sequência e responder comCreateSequenceResponse
que contém um elementowsrm:Accept
, formando duas sequências correlacionadas inversas ou rejeitando a solicitaçãoCreateSequence
.R1104:
SequenceAcknowledgement
e as mensagens de aplicativo que fluem na sequência inversa devem ser enviadas para a referência de ponto de extremidadeReplyTo
doCreateSequence
.R1105: as referências de ponto de extremidade
AcksTo
eReplyTo
emCreateSequence
devem ter valores de endereço que correspondam ao octeto.O Respondente do WCF verifica se a parte do URI e os EPRs
AcksTo
eReplyTo
são idênticos antes de criar uma sequência.R1106: as referências de ponto de extremidade
AcksTo
eReplyTo
emCreateSequence
devem ter o mesmo conjunto de parâmetros de referência.O WCF não impõe, mas pressupõe que [parâmetros de referência] de
AcksTo
eReplyTo
emCreateSequence
são idênticos e usa [parâmetros de referência] da referência de ponto de extremidadeReplyTo
para confirmações e mensagens de sequência inversa.R1107: quando duas sequências inversas são estabelecidas usando o mecanismo
Offer
e as mensagens de aplicativoSequenceAcknowledgement
que fluem em sequências inversas devem ser enviadas para a referência de ponto de extremidadeReplyTo
doCreateSequence
.R1108: quando duas sequências inversas são estabelecidas usando o mecanismo Offer, a propriedade
[address]
do elemento filho de Referência de ponto de extremidadewsrm:AcksTo
do elementowsrm:Accept
doCreateSequenceResponse
deve corresponder a cada byte do URI de destino doCreateSequence
.R1109: quando duas sequências inversas são estabelecidas usando o mecanismo
Offer
, as mensagens enviadas pelo iniciador e as confirmações às mensagens pelo respondente devem ser enviadas para a mesma Referência de ponto de extremidade.O WCF usa WS-Reliable Messaging para estabelecer sessões confiáveis entre o iniciador e o respondente. A implementação de mensagens WS-Reliable do WCF fornece uma sessão confiável para padrões de mensagens duplex unidirecionais, de solicitação-resposta e full duplex. O mecanismo
Offer
de WS-Reliable Messaging emCreateSequence
/CreateSequenceResponse
permite estabelecer duas sequências inversas correlacionadas e fornece um protocolo de sessão adequado para todos os pontos de extremidade de mensagem. Como o WCF fornece uma garantia de segurança para essa sessão, incluindo a proteção de ponta a ponta para a integridade da sessão, é prático garantir que as mensagens destinadas à mesma parte cheguem ao mesmo destino. Isso também permite o piggy-back de confirmações de sequência em mensagens de aplicativo. Portanto, as restrições R1104, R1105 e R1108 se aplicam ao WCF.
Um exemplo de uma mensagem 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>
Um exemplo de uma mensagem 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>
Sequência
Veja a seguir uma lista de restrições que se aplicam a sequências:
B1201: o WCF gera e acessa números de sequência não superiores ao valor inclusivo máximo de
xs:long
, 9223372036854775807.B1202: o WCF sempre gera uma última mensagem vazia com o URI de ação de
http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage
.B1203: o WCF recebe e entrega uma mensagem com um cabeçalho Sequence que contém um elemento
LastMessage
, desde que o URI de ação não sejahttp://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage
.
Um exemplo de cabeçalho Sequence.
<wsrm:Sequence>
<wsrm:Identifier>
urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
</wsrm:Identifier>
<wsrm:MessageNumber>
10
</wsrm:MessageNumber>
<wsrm:LastMessage/>
</wsrm:Sequence>
Cabeçalho AckRequested
O WCF usa o cabeçalho AckRequested
como um mecanismo de keep alive. O WCF não gera o elemento opcional MessageNumber
. Ao receber uma mensagem com um cabeçalho AckRequested
que contém o elemento MessageNumber
, o WCF ignora o valor do elemento MessageNumber
, conforme mostrado no exemplo a seguir.
<wsrm:AckRequested>
<wsrm:Identifier>
urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
</wsrm:Identifier>
</wsrm:AckRequested>
Cabeçalho SequenceAcknowledgement
O WCF usa o mecanismo piggy-back para confirmações de sequência fornecidas no WS-Reliable Messaging.
R1401: quando duas sequências inversas são estabelecidas usando o mecanismo
Offer
, o cabeçalhoSequenceAcknowledgement
pode ser incluído em qualquer mensagem de aplicativo transmitida para o destinatário pretendido.B1402: quando o WCF deve gerar uma confirmação antes de receber qualquer mensagem de sequência (por exemplo, para atender a uma mensagem
AckRequested
), o WCF gera um cabeçalhoSequenceAcknowledgement
que contém o intervalo 0-0, conforme mostrado no exemplo a seguir.<wsrm:SequenceAcknowledgement> <wsrm:Identifier> urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36 </wsrm:Identifier> <wsrm:AcknowledgementRange Upper="0" Lower="0"/> </wsrm:SequenceAcknowledgement>
B1403: o WCF não gera cabeçalhos
SequenceAcknowledgement
que contêm um elementoNack
, mas dá suporte a elementosNack
.
Falhas de WS-ReliableMessaging
Veja a seguir uma lista de restrições que se aplicam à implementação do WCF de falhas de WS-Reliable Messaging:
B1501: o WCF não gera falhas de
MessageNumberRollover
.B1502: o ponto de extremidade do WCF pode gerar falhas de
CreateSequenceRefused
conforme descrito na especificação.B1503: quando o ponto de extremidade de serviço atinge seu limite de conexão e não pode processar novas conexões, o WCF gera um subcódigo de falha de
CreateSequenceRefused
adicional,netrm:ConnectionLimitReached
, conforme mostrado no exemplo a seguir.<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>
Falhas de WS-Addressing
Como o WS-Reliable Messaging usa o WS-Addressing, a implementação do WCF WS-Reliable Messaging pode gerar falhas de WS-Addressing. Esta seção aborda as falhas de WS-Addressing que o WCF gera explicitamente na camada WS-Reliable Messaging:
B1601: WCF gera o cabeçalho Message Addressing necessário quando um dos seguintes é verdadeiro:
Uma mensagem está sem um cabeçalho
Sequence
e um cabeçalhoAction
.Uma mensagem
CreateSequence
está sem um cabeçalhoMessageId
.Uma mensagem
CreateSequence
está sem um cabeçalhoReplyTo
.
B1602: o WCF gera a ação de falha de Action Not Supported em resposta a uma mensagem que está sem um cabeçalho
Sequence
e tem um cabeçalhoAction
que não é reconhecido na especificação WS-Reliable Messaging.B1603: o WCF gera a falha Endpoint Unavailable para indicar que o ponto de extremidade não processa a sequência com base no exame dos cabeçalhos de endereçamento da mensagem
CreateSequence
.
Composição de protocolo
Composição com WS-Addressing
O WCF dá suporte a duas versões do WS-Addressing: WS-Addressing 2004/08 [WS-ADDR] e W3C WS-Addressing 1.0 Recommendations [WS-ADDR-CORE] e [WS-ADDR-SOAP].
Embora a especificação WS-Reliable Messaging mencione apenas WS-Addressing 2004/08, ela não restringe a versão WS-Addressing a ser usada. Veja a seguir uma lista de restrições que se aplicam ao WCF:
R2101: WS-Addressing 2004/08 e WS-Addressing 1.0 podem ser usados com WS-Reliable Messaging.
R2102: uma única versão do WS-Addressing deve ser usada em uma determinada sequência WS-Reliable Messaging ou um par de sequências inversas correlacionadas usando o mecanismo
wsrm:Offer
.
Composição com SOAP
O WCF dá suporte ao uso de SOAP 1.1 e SOAP 1.2 com WS-Reliable Messaging.
Composição com WS-Security e WS-SecureConversation
O WCF fornece proteção para sequências de mensagens WS-Reliable usando transporte seguro (HTTPS), composição com WS-Security e composição com WS-Secure Conversation. Veja a seguir uma lista de restrições que se aplicam ao WCF:
R2301: para proteger a integridade de uma sequência WS-Reliable Messaging, além da integridade e da confidencialidade de mensagens individuais, o WCF requer que WS-Secure Conversation seja usado.
R2302: a sessão AWS-Secure Conversation deve ser estabelecida antes de se estabelecer sequências WS-Reliable Messaging.
R2303: se o tempo de vida da sequência WS-Reliable Messaging exceder o tempo de vida da sessão de WS-Secure Conversation, o
SecurityContextToken
estabelecido pelo uso de WS-Secure Conversation deve ser renovado usando a associação WS-Secure Conversation Renewal correspondente.B2304: a sequência WS-Reliable Messaging ou um par de sequências inversas correlacionadas são sempre associadas a uma única sessão de WS-SecureConversation.
A origem WCF gera o elemento
wsse:SecurityTokenReference
na seção de extensibilidade do elemento da mensagemCreateSequence
.R2305: quando composta com WS-Secure Conversation, uma mensagem
CreateSequence
deve conter o elementowsse:SecurityTokenReference
.
WS-Reliable Messaging WS-Policy Assertion
O WCF usa WS-Reliable Messaging WS-Policy Assertion wsrm:RMAssertion
para descrever os recursos de pontos de extremidade. Veja a seguir uma lista de restrições que se aplicam ao WCF:
B3001: o WCF anexa a Declaração de WS-Policy
wsrm:RMAssertion
a elementoswsdl:binding
. O WCF dá suporte a anexos para os elementoswsdl:binding
ewsdl:port
.B3002: o WCF dá suporte às seguintes propriedades opcionais da instrução de declaração WS-Reliable Messaging e fornece controle sobre elas no WCF
ReliableMessagingBindingElement
:wsrm:InactivityTimeout
wsrm:AcknowledgementInterval
A seguir, é mostrado um exemplo.
<wsrm:RMAssertion> <wsrm:InactivityTimeout Milliseconds="600000" /> <wsrm:AcknowledgementInterval Milliseconds="200" /> </wsrm:RMAssertion>
Extensão de WS-Reliable Messaging de controle de fluxo
O WCF usa a extensibilidade de WS-Reliable Messaging para fornecer controle adicional mais rigoroso sobre o fluxo de mensagens de sequência.
O controle de fluxo é habilitado definindo a propriedade ReliableSessionBindingElement.FlowControlEnabled como true
. Veja a seguir uma lista de restrições que se aplicam ao WCF:
B4001: quando o controle de fluxo de Reliable Messaging está habilitado, o WCF gera um elemento
netrm:BufferRemaining
na extensibilidade do elemento do cabeçalhoSequenceAcknowledgement
.B4002: quando o controle de fluxo de Reliable Messaging está habilitado, o WCF não exige que um elemento
netrm:BufferRemaining
esteja presente no cabeçalhoSequenceAcknowledgement
, conforme mostrado no exemplo a seguir.<wsrm:SequenceAcknowledgement> <wsrm:Identifier> http://fabrikam123.com/abc </wsrm:Identifier> <wsrm:AcknowledgementRange Upper="1" Lower="1"/> <netrm:BufferRemaining> 8 </netrm:BufferRemaining> </wsrm:SequenceAcknowledgement>
B4003: o WCF usa
netrm:BufferRemaining
para indicar quantas novas mensagens o destino de Reliable Messaging pode armazenar em buffer.B4004: o serviço de Reliable Messaging do WCF limita o número de mensagens transmitidas quando o aplicativo de destino de Reliable Messaging não pode receber mensagens rapidamente. O destino do Reliable Messaging armazena mensagens em buffer e o valor do elemento cai para 0.
B4005: o WCF gera
netrm:BufferRemaining
valores inteiros entre 0 e 4096 inclusive e lê valores inteiros entre 0 e o valor 214748364maxInclusive
dexs:int
inclusive.
Padrões de troca de mensagens.
Esta seção descreve o comportamento do WCF quando WS-Reliable Messaging é usado para diferentes Padrões de troca de mensagens. Para cada Padrão de troca de mensagens, os dois cenários de implantações a seguir são considerados:
Iniciador não endereçável: o iniciador está atrás do firewall; r respondente pode entregar mensagens ao iniciador somente em respostas HTTP.
Iniciador endereçável: solicitações HTTP podem ser enviadas ao iniciador e ao respondente; em outras palavras, duas conexões HTTP inversas podem ser estabelecidas.
Iniciador unidirecional não endereçável
Associação
O WCF fornece um padrão de troca de mensagens unidirecionais usando uma sequência em um canal HTTP. O WCF usa as solicitações HTTP para transmitir todas as mensagens do RMS para o RMD e a resposta HTTP para transmitir todas as mensagens do RMD para o RMS.
CreateSequence Exchange
O Iniciador do WCF gera uma mensagem CreateSequence
sem oferta. O Respondente do WCF garante que CreateSequence
não tem nenhuma oferta antes de criar uma sequência. O Respondente do WCF responde à solicitação CreateSequence
com uma mensagem CreateSequenceResponse
.
SequenceAcknowledgement
O Iniciador do WCF processa confirmações na resposta de todas as mensagens, exceto a mensagem CreateSequence
e as mensagens de falha. O Respondente do WCF sempre gera uma confirmação autônoma na resposta à sequência e às mensagens AckRequested
.
Mensagem TerminateSequence
O WCF trata TerminateSequence
como uma operação unidirecional, o que significa que a resposta HTTP tem um corpo vazio e um código de status HTTP 202.
Iniciador unidirecional, endereçável
Associação
O WCF fornece um padrão de troca de mensagens unidirecionais usando uma sequência em um canal HTTP de entrada e um de saída. O WCF usa as solicitações HTTP para transmitir todas as mensagens. Todas as respostas HTTP têm um corpo vazio e um código de status HTTP 202.
CreateSequence Exchange
O Iniciador do WCF gera uma mensagem CreateSequence
sem oferta. O Respondente do WCF garante que CreateSequence
não tem nenhuma oferta antes de criar uma sequência. O Respondente do WCF transmite a mensagem CreateSequenceResponse
em uma solicitação HTTP endereçada com a referência do ponto de extremidade ReplyTo
.
Iniciador duplex, endereçável
Associação
O WCF fornece um padrão de troca de mensagens bidirecional totalmente assíncrono usando duas sequências em um canal HTTP de entrada e um de saída. O WCF usa as solicitações HTTP para transmitir todas as mensagens. Todas as respostas HTTP têm um corpo vazio e um código de status HTTP 202.
CreateSequence Exchange
O Iniciador do WCF gera uma mensagem CreateSequence
com uma oferta. O Respondente do WCF garante que CreateSequence
tem uma oferta antes de criar uma sequência. O WCF envia CreateSequenceResponse
na solicitação HTTP endereçada à referência de ponto de extremidade ReplyTo
de CreateSequence
.
Tempo de vida da sequência
O WCF trata as duas sequências como uma sessão totalmente duplex.
Ao gerar uma falha que causa falha em uma sequência, o WCF espera que o ponto de extremidade remoto cause falha nas duas sequências. Ao ler uma falha que causa falha em uma sequência, o WCF causa falha em ambas as sequências.
O WCF pode fechar sua sequência de saída e continuar processando mensagens em sua sequência de entrada. Por outro lado, o WCF pode processar o fechamento da sequência de entrada e continuar enviando mensagens em sua sequência de saída.
Iniciador não endereçável, de solicitação-resposta
Associação
O WCF fornece um padrão de troca de mensagens unidirecionais e de solicitação-resposta usando duas sequências em um canal HTTP. O WCF usa as solicitações HTTP para transmitir as mensagens da sequência de solicitação e usa as respostas HTTP para transmitir as mensagens da sequência de respostas.
CreateSequence Exchange
O Iniciador do WCF gera uma mensagem CreateSequence
com uma oferta. O Respondente do WCF garante que CreateSequence
tem uma oferta antes de criar uma sequência. O Respondente do WCF responde à solicitação CreateSequence
com uma mensagem CreateSequenceResponse
.
Mensagem unidirecional
Para concluir um protocolo de troca de mensagens unidirecionais com êxito, o Iniciador do WCF transmite uma mensagem de sequência de solicitação na solicitação HTTP e recebe uma mensagem SequenceAcknowledgement
autônoma na resposta HTTP. SequenceAcknowledgement
deve confirmar a mensagem transmitida.
O Respondente do WCF pode responder à solicitação com uma confirmação, uma falha ou uma resposta com um corpo vazio e um código de status HTTP 202.
Mensagens bidirecionais
Para concluir um protocolo de troca de mensagens bidirecional com sucesso, o Iniciador do WCF transmite uma mensagem de sequência de solicitação na solicitação HTTP e recebe uma mensagem de sequência de respostas na resposta HTTP. A resposta deve conter um SequenceAcknowledgement
confirmando a mensagem de sequência de solicitações transmitida.
O Respondente do WCF pode responder à solicitação com uma resposta de aplicativo, uma falha ou uma resposta com um corpo vazio e um código de status HTTP 202.
Devido à presença de mensagens unidirecionais e ao tempo das respostas do aplicativo, o número de sequência da mensagem de sequências de solicitação e o número da sequência da mensagem de resposta não têm correlação.
Repetindo respostas
O WCF depende da correlação de solicitação-resposta HTTP para correlação de protocolo de troca de mensagens bidirecionais. Por isso, o Iniciador do WCF não para de repetir uma mensagem de sequência de solicitações quando a mensagem de sequência de solicitações é reconhecida, mas sim quando a resposta HTTP carrega uma confirmação, uma mensagem do usuário ou uma falha. O Respondente do WCF repete as respostas na etapa de solicitação HTTP da solicitação à qual a resposta está correlacionada.
LastMessage Exchange
O Iniciador do WCF gera e transmite uma última mensagem com corpo vazia na etapa de solicitação HTTP. O WCF requer uma resposta, mas ignora a mensagem de resposta real. O Respondente do WCF responde à última mensagem com corpo vazia da sequência de solicitações com a última mensagem com corpo vazia da sequência de respostas.
Se o Respondente do WCF receber uma última mensagem na qual o URI de ação não é http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage
, o WCF responderá com uma última mensagem. No caso de um protocolo de troca de mensagens bidirecionais, a última mensagem carrega a mensagem do aplicativo; no caso de um protocolo de troca de mensagens unidirecionais, a última mensagem está vazia.
O Respondente do WCF não requer uma confirmação para a última mensagem com corpo vazia da sequência de respostas.
TerminateSequence Exchange
Quando todas as solicitações tiverem recebido uma resposta válida, o Iniciador do WCF gerará e transmitirá a mensagem TerminateSequence
da sequência de solicitações na etapa de solicitação HTTP. O WCF requer uma resposta, mas ignora a mensagem de resposta real. O Respondente do WCF responde à mensagem TerminateSequence
da sequência de solicitações com a mensagem TerminateSequence
da sequência de respostas.
Em uma sequência de desligamento normal, ambas as mensagens TerminateSequence
carregam um intervalo SequenceAcknowledgement
completo.
Iniciador não endereçável de solicitação-resposta
Associação
O WCF fornece um padrão de troca de mensagens de solicitação-resposta usando duas sequências em um canal HTTP de entrada e um de saída. O WCF usa as solicitações HTTP para transmitir todas as mensagens. Todas as respostas HTTP têm um corpo vazio e um código de status HTTP 202.
CreateSequence Exchange
O Iniciador do WCF gera uma mensagem CreateSequence
com uma oferta. O Respondente do WCF garante que CreateSequence
tem uma oferta antes de criar uma sequência. O WCF envia CreateSequenceResponse
na solicitação HTTP endereçada à referência de ponto de extremidade ReplyTo
de CreateSequence
.
Correlação resposta/solicitação
O Iniciador do WCF garante que todas as mensagens de solicitação de aplicativo possuam uma referência de ponto de extremidade MessageId
e ReplyTo
. O Iniciador do WCF aplica a referência de ponto de extremidade ReplyTo
da mensagem CreateSequence
em cada mensagem de solicitação de aplicativo. O Respondente do WCF requer que as mensagens de solicitação de entrada possuam um MessageId
e um ReplyTo
. O Respondente do WCF garante que o URI da referência de ponto de extremidade de CreateSequence
e todas as mensagens de solicitação de aplicativo seja idêntico.