Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico descreve como você pode exibir logs de mensagens.
Exibindo logs de mensagens no Visualizador de Rastreamento de Serviço
Uma mensagem será transformada à medida que for processada pelo WCF. Portanto, uma mensagem que está sendo registrada reflete apenas o conteúdo da mensagem no ponto em que ela foi registrada, não o conteúdo no fio.
Como a saída do log de mensagens não tem relação com o formato de transferência da mensagem, o registro em log de mensagens sempre gera a mensagem decodificada. Se você configurou o registro em log de mensagens corretamente, qualquer mensagem registrada deverá estar em texto sem formatação. Por exemplo, o formato (texto sem formatação) das mensagens registradas não é afetado pelo uso de um codificador de mensagem binária.
A saída do XmlWriterTraceListener é um arquivo que contém uma sequência de fragmentos XML. Você deve estar ciente de que o arquivo não é um arquivo XML válido. É recomendável que você use a Ferramenta visualizador de rastreamento de serviço (SvcTraceViewer.exe) para exibir os arquivos de log de mensagens. Para obter mais informações sobre como usar essa ferramenta, consulte Usando o Visualizador de Rastreamento de Serviço para exibir rastreamentos correlacionados e solução de problemas.
No Visualizador de Rastreamento de Serviço, as mensagens são listadas na guia Mensagem . As mensagens que causaram ou estão relacionadas a um erro de processamento são realçadas em amarelo (nível de aviso) ou vermelho (nível de erro), dependendo da gravidade do erro. Clicar duas vezes na mensagem exibe o rastreamento de mensagem no contexto da solicitação de processamento.
Observação
Se uma mensagem não tiver cabeçalho, nenhuma <header/> marca será registrada.
Exibindo mensagens registradas por um cliente, um relé e um serviço
Seu ambiente pode conter um cliente, que envia uma mensagem para uma retransmissão, que posteriormente encaminha a mensagem para o serviço. Quando o registro de mensagens estiver habilitado em todos os três locais e todos os três registros de mensagens forem visualizados na Ferramenta de Visualização de Rastreamento de Serviço (SvcTraceViewer.exe) simultaneamente, as trocas de registros de mensagens serão renderizadas incorretamente. Isso ocorre porque o CorrelationId e ActivityId no cabeçalho da mensagem não são exclusivos para cada par de envio-recebimento.
Você pode usar um dos métodos a seguir para resolver esse problema.
Exiba apenas dois dos três logs de mensagens na Ferramenta visualizador de rastreamento de serviço (SvcTraceViewer.exe) a qualquer momento.
Se você precisar exibir todos os três logs na Ferramenta visualizador de rastreamento de serviço (SvcTraceViewer.exe) ao mesmo tempo, poderá modificar o serviço de retransmissão criando uma nova Message instância. Essa instância deve ser uma cópia do corpo da mensagem de entrada, além de todos os cabeçalhos, exceto pelos cabeçalhos
ActivityIdeAction. O código de exemplo a seguir demonstra como fazer isso.
Message outgoingMessage = Message.CreateMessage(incomingMessage.Version, incomingMessage.Headers.Action, incomingMessage.GetReaderAtBodyContents());
for (int i = 0; i < incomingMessage.Headers.Count; i++)
{
if (incomingMessage.Headers[i].Name.Equals("ActivityId", StringComparison.InvariantCultureIgnoreCase) ||
incomingMessage.Headers[i].Name.Equals("Action", StringComparison.InvariantCultureIgnoreCase))
{
continue;
}
outgoingMessage.Headers.CopyHeaderFrom(incomingMessage, i);
}
Casos excepcionais para conteúdo de log de mensagens imprecisos
Nas condições a seguir, as mensagens registradas podem não ser a representação exata do fluxo de octeto presente no fio.
Para BasicHttpBinding, os cabeçalhos de envelope são registrados para as mensagens de entrada no namespace /addressing/none.
Espaços em branco podem ser incompatíveis.
Para mensagens de entrada, elementos vazios podem ser representados de forma diferente. Por exemplo, <etiqueta></etiqueta> em vez de <etiqueta/>
Quando o registro em log de PII conhecido é desabilitado por padrão ou configuração explícita enableLoggingKnownPii="true".
A codificação está habilitada para transformação em UTF-8.