Поделиться через


Расширение трассировки

В этом образце показано, как расширить возможности трассировки Windows Communication Foundation (WCF), написав пользовательские трассировки действий в коде клиента и службы. Это позволяет пользователю создавать действия трассировки и группировать трассировки в логические пакеты работ. Кроме того, возможно согласование действий с помощью передач (в рамках одной конечной точки) и распространения (между конечными точками). В этом образце трассировка включается как для клиента, так и для службы. Дополнительные сведения о включении трассировки в файлах конфигурации клиента и службы см. в разделе Трассировка и ведение журнала сообщений.

Этот образец основан на образце Образец для начала работы.

Aa354511.note(ru-ru,VS.100).gifПримечание
Процедура настройки и инструкции по построению для данного образца приведены в конце этого раздела.

Aa354511.Important(ru-ru,VS.100).gif Примечание
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).

<диск_установки>:\WF_WCF_Samples

Если этот каталог не существует, перейдите на страницу Образцы Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для .NET Framework 4, чтобы загрузить все образцы Windows Communication Foundation (WCF) и WF. Этот образец расположен в следующем каталоге.

<диск_установки>:\WF_WCF_Samples\WCF\Basic\Management\ExtendingTracing

Трассировка и распространение действий

Пользовательская трассировка действий позволяет пользователям создавать собственные действия трассировки для объединения трассировок в логические пакеты работ, согласовывать действия с помощью передач и распространения, а также снижать расходы производительности, связанные с трассировкой WCF (например, место на диске, занимаемое файлом журнала).

Добавление пользовательских источников

Пользовательские трассировки можно добавлять как в код клиента, так и в код службы. Добавление источников трассировки в файл конфигурации клиента или служб позволяет записывать и отображать эти пользовательские трассировки, используя Программа Service Trace Viewer (SvcTraceViewer.exe). В следующем примере кода показано, как добавить в файл конфигурации пользовательский источник трассировки с именем ServerCalculatorTraceSource.

<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>....
....

Согласование действий

Для непосредственного согласования действий между конечными точками в источнике трассировки System.ServiceModel атрибут propagateActivity должен иметь значение true. Кроме того, для распространения трассировки без действий WCF необходимо отключить трассировку действия ServiceModel. Это показано в следующем примере кода.

Aa354511.note(ru-ru,VS.100).gifПримечание
Отключение трассировки действия ServiceModel не эквивалентно указанию значения off для уровня трассировки, обозначаемого свойством switchValue.

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">

    ...

       </source>
    </sources>
</system.diagnostics>

Снижение нагрузки на производительность

Установка для свойства ActivityTracing значения off в трассировке System.ServiceModel создает файл трассировки, который содержит только пользовательские трассировки действий без включения каких-либо трассировок действий ServiceModel. В результате уменьшится размер файла журнала. Однако при этом будет потеряна возможность согласования трассировок обработки WCF.

Настройка, построение и выполнение образца

  1. Убедитесь, что выполнены процедуры, описанные в разделе Процедура однократной настройки образцов Windows Communication Foundation.

  2. Чтобы создать выпуск решения на языке C# или Visual Basic .NET, следуйте инструкциям в разделе Построение образцов Windows Communication Foundation.

  3. Чтобы запустить образец на одном или нескольких компьютерах, следуйте инструкциям в разделе Running the Windows Communication Foundation Samples.

См. также

Другие ресурсы

Образцы наблюдения за AppFabric