Compartilhar via


<soapProcessing>

Define o comportamento de ponto de extremidade de cliente usado para realizar marshaling de mensagens entre diferentes tipos de associação e versões de mensagem.

<configuração>
  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <comportamento>
          <soapProcessing>

Syntax

<soapProcessing processMessages="true|false" />

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Atributos

Atributo Descrição
processMessages Um valor booliano que especifica se se deve realizar marshal das mensagens entre versões de mensagem SOAP.

Elementos filho

Nenhum

Elementos pai

Elemento Descrição
<comportamento> Especifica o comportamento de um ponto de extremidade.

Comentários

O processamento SOAP é o processo em que as mensagens são convertidas entre as versões de mensagem.

O Serviço de Roteamento do WCF (Windows Communication Foundation) pode converter mensagens de um protocolo para outro. Se as versões de mensagens de entrada e saída forem diferentes, uma nova mensagem da versão correta será criada. O processamento de mensagens de um MessageVersion para o outro é feito pela construção de uma nova mensagem WCF que contém a parte do corpo e os cabeçalhos relevantes da mensagem WCF de entrada. Os cabeçalhos específicos ao endereçamento ou que são compreendidos no nível do roteador não são usados durante a construção da nova mensagem de WCF porque esses cabeçalhos são de uma versão diferente (no caso de cabeçalhos de endereçamento) ou foram processados como parte da comunicação entre o cliente e o roteador.

O fato de um cabeçalho ser colocado na mensagem de saída é determinado se ele foi marcado ou não como entendido ao passar pela camada de canal de entrada. Os cabeçalhos que não são compreendidos (como cabeçalhos personalizados) não são removidos e, portanto, passam pelo serviço de roteamento ao serem copiados para a mensagem de saída. O corpo da mensagem é copiado para a mensagem de saída. Em seguida, a mensagem é enviada para fora do canal de saída, momento em que todos os cabeçalhos e outros dados de envelope específicos a esse protocolo de comunicação/transporte serão criados e adicionados.

Essas etapas de processamento ocorrem quando o comportamento do processamento SOAP é especificado. Esse comportamento <soapProcessingExtension> é um comportamento de ponto de extremidade aplicado a todos os pontos de extremidade de cliente (saída) quando o Serviço de Roteamento é iniciado. Padrão, o comportamento de <roteamento> cria e anexa um novo comportamento <soapProcessingExtension> com processMessages definido como true para cada ponto de extremidade do cliente. Se você tiver um protocolo que o Serviço de Roteamento não entenda ou se desejar substituir o comportamento de processamento padrão, poderá desabilitar o processamento SOAP para todo o Serviço de Roteamento ou apenas para pontos de extremidade específicos. Para desabilitar o processamento SOAP para todo o serviço de roteamento em todos os pontos de extremidade, defina o atributo soapProcessing do comportamento de <roteamento> como false. Para desativar o processamento SOAP para um determinado ponto de extremidade, use esse comportamento e defina seu atributo processMessages como false. Em seguida, anexe esse comportamento ao ponto de extremidade no qual você não deseja que o código de processamento padrão seja executado. Quando o comportamento de <roteamento> configurar o Serviço de Roteamento, ele ignorará a reaplicação do comportamento do ponto de extremidade, dado que já existe um.