Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
В примере TracingAndLogging показано, как включить трассировку и ведение журнала сообщений. Полученные трассировки и журналы сообщений просматриваются с помощью средства просмотра трассировки службы (SvcTraceViewer.exe). Этот пример основан на Кратком руководстве.
Замечание
Процедура установки и инструкции по сборке для этого примера находятся в конце этого раздела.
Отслеживание
Windows Communication Foundation (WCF) использует механизм трассировки, определенный в пространстве имен System.Diagnostics. В этой модели трассировки данные трассировки создаются источниками трассировки, реализуемыми приложениями. Каждый источник определяется именем. Потребители трассировки создают прослушиватели трассировки для источников трассировки, для которых они хотят получить информацию. Чтобы получить данные отслеживания, необходимо создать прослушиватель для источника отслеживания. В WCF это можно сделать, добавив следующий код в файл конфигурации службы или клиента, задав источник switchValueтрассировки модели службы:
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Information,ActivityTracing"
propagateActivity="true">
<listeners>
<add name="xml" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml" />
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\logs\TracingAndLogging-service.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml" />
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
Дополнительные сведения о источниках трассировки см. в разделе "Источник трассировки" в разделе "Настройка трассировки ".
Отслеживание активности и распространение
Включение ActivityTracing и установка propagateActivity значений true в источниках трассировки для клиента и службы обеспечивают корреляцию трассировок в рамках system.ServiceModel логических единиц обработки (действий), корреляцию действий в пределах конечных точек (посредством передачи действий), а также корреляцию между действиями, охватывающими несколько конечных точек (через распространение идентификатора действия).
Эти три механизма (действия, передачи и распространение) помогут вам быстрее найти первопричину ошибки с помощью инструмента Service Trace Viewer. Дополнительную информацию см. в разделе Использование средства просмотра трассировки службы для просмотра коррелированных трассировок и устранения неполадок.
Можно расширить трассировку, предоставляемую ServiceModel, путем создания определяемых пользователем трассировок действий. Определяемая пользователем трассировка действий позволяет пользователю создавать действия трассировки следующим образом:
Группируйте трассировки в логические единицы работы.
Сопоставляйте действия с помощью передачи и распространения.
Уменьшите затраты на производительность трассировки WCF (например, затраты на дисковое пространство файла журнала).
Для получения дополнительной информации о пользовательской трассировке активности см. пример Расширение трассировки.
Ведение журнала сообщений
Ведение журнала сообщений можно включить как в клиенте, так и в службе любого приложения WCF. Чтобы включить ведение журнала сообщений, необходимо добавить следующий код в клиент или службу:
<configuration>
<system.serviceModel>
<diagnostics>
<!-- Enable Message Logging here. -->
<!-- log all messages received or sent at the transport or service model levels -->
<messageLogging logEntireMessage="true"
maxMessagesToLog="300"
logMessagesAtServiceLevel="true"
logMalformedMessages="true"
logMessagesAtTransportLevel="true" />
</diagnostics>
</system.serviceModel>
</configuration>
При записи сообщения тип трассировки зависит от того, выполняется ли трассировка на клиенте или сервере. Например, сообщение "Добавить", которое отправляется клиенту, отслеживается в категории "TransportWrite" на стороне клиента, тогда как то же сообщение отслеживается в категории "TransportRead" на стороне службы.
Настройте прослушиватель трассировки, добавив следующий код в System.Diagnostics раздел файла App.config клиента или файла Web.config службы:
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Information,ActivityTracing"
propagateActivity="true">
<listeners>
<add name="xml" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml" />
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\logs\TracingAndLogging-client.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml" />
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
Сообщения регистрируются в формате XML в целевом каталоге, указанном в файле конфигурации.
Замечание
Файлы трассировки не создаются без первоначального создания каталога журнала. Убедитесь, что каталог C:\logs\ существует или укажите альтернативный каталог ведения журнала в конфигурации прослушивателя. Дополнительные сведения см. в инструкции по начальной настройке в конце этого документа.
Дополнительные сведения о ведении журнала сообщений см. в разделе "Настройка ведения журнала сообщений ".
Настройка, сборка и запуск примера
Убедитесь, что вы выполнили процедуру настройки One-Time для образцов Windows Communication Foundation.
Перед запуском примера трассировки и ведения журнала сообщений создайте каталог C:\logs\ для службы, чтобы записывать туда файлы .svclog. Имя этого каталога определяется в файле конфигурации как путь к трассировкам и сообщениям, которые нужно регистрировать, и его можно изменить. Предоставьте пользователю Network Service доступ на запись в каталог журналов.
Чтобы создать версии решения C#, C++, или Visual Basic .NET, выполните инструкции по созданию примеров Windows Communication Foundation.
Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в разделе "Примеры Windows Communication Foundation".