Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O exemplo ExtendingTracing demonstra como estender o recurso de rastreamento do Windows Communication Foundation (WCF) gravando rastreamentos de atividade definidos pelo usuário no código do cliente e do serviço. Escrever rastreamentos de atividade definidos pelo usuário permite que o usuário crie atividades de rastreamento e agrupe rastreamentos em unidades lógicas de trabalho. Também é possível correlacionar atividades por meio de transferências (dentro do mesmo endpoint) e propagação (entre endpoints). Neste exemplo, o rastreamento está habilitado para o cliente e o serviço. Para obter mais informações sobre como habilitar o rastreamento em arquivos de configuração de cliente e serviço, consulte Rastreamento e registro de mensagens.
Este exemplo é baseado em Introdução.
Observação
O procedimento de configuração e as instruções de compilação para este exemplo estão localizados no final deste tópico.
Rastreamento e propagação de atividades
O rastreamento de atividades definido pelo usuário permite que o usuário crie suas próprias atividades de rastreamento para agrupar rastreamentos em unidades lógicas de trabalho, correlacionar atividades por meio de transferências e propagação e diminuir o custo de desempenho do rastreamento WCF (por exemplo, o custo de espaço em disco de um arquivo de log).
Adicionar fontes personalizadas
Rastreamentos definidos pelo usuário podem ser adicionados ao código do cliente e do serviço. Adicionar fontes de rastreamento aos arquivos de configuração do cliente ou do serviço permite que esses rastreamentos personalizados sejam registrados e exibidos na Ferramenta Visualizador de Rastreamento de Serviço (SvcTraceViewer.exe). O código a seguir mostra como adicionar uma fonte de rastreamento definida pelo usuário nomeada ServerCalculatorTraceSource ao arquivo de configuração.
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="xml">
<filter type="" />
</add>
</listeners>
</source>
<source name="ServerCalculatorTraceSource" switchValue="Information,ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="xml">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\logs\ServerTraces.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml" traceOutputOptions="Callstack">
<filter type="" />
</add>
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
....
Correlacionar atividades
Para correlacionar diretamente atividades entre pontos de extremidade, o atributo propagateActivity deve ser definido como true nas fontes de rastreamento System.ServiceModel. Além disso, para propagar rastreamentos sem passar pelas atividades do WCF, o ServiceModel Activity Tracing deve ser desativado. Isso pode ser visto no exemplo de código a seguir.
Observação
Desativar o ServiceModel Activity Tracing não é o mesmo que ter o nível de rastreamento, indicado pela propriedade, definido como switchValue desativado.
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
...
</source>
</sources>
</system.diagnostics>
Diminuir o custo de desempenho
Definir ActivityTracing como desativado na origem de rastreamento System.ServiceModel gera um ficheiro de rastreamento que contém apenas os rastreamentos de atividade definidos pelo utilizador, sem incluir nenhum dos rastreamentos de atividade do ServiceModel. A exclusão de rastreamentos de atividade ServiceModel resulta em um arquivo de log muito menor. No entanto, a oportunidade para correlacionar rastreamentos de processamento WCF é perdida.
Configurar, compilar e executar o exemplo
Verifique se você executou o procedimento de instalação do One-Time para os exemplos do Windows Communication Foundation.
Para criar a edição C# ou Visual Basic .NET da solução, siga as instruções em Criando os exemplos do Windows Communication Foundation.
Para executar o exemplo em uma configuração de computador único ou entre computadores, siga as instruções em Executando os exemplos do Windows Communication Foundation.