В приведенной ниже конфигурации показано, как включить трассировку WCF. В частности, здесь показано, как выполнить указанные ниже задачи.

  • Запись сообщений в журнал на уровне служб и транспортном уровне, что позволяет изучать необработанные XML-данные "на лету".

  • Включение трассировки исключений WCF для перехвата ошибок при обработке заголовка безопасности сообщения.

  • Включение записи в журнал дайджестов, что позволяет изучать канонические дайджесты для выявления причин исключений при проверке подписи.

  • Включение трассировки действий для сопоставления сообщений и определения этапа, на котором возникло исключение.

Дополнительные сведения см. в разделе Трассировка WIF.

  Копировать код
<configuration> <system.serviceModel> <diagnostics> <messageLogging maxMessagesToLog="30000" logEntireMessage="true" logMessagesAtServiceLevel="true" logMalformedMessages="true" logMessagesAtTransportLevel="true"> </messageLogging> </diagnostics> </system.serviceModel> <system.diagnostics> <sources> <!-- В этом разделе включается запись в журнал дайджестов; чтобы это работало, в файл machine.config необходимо добавить следующие строки: <system.serviceModel> <machineSettings enableLoggingKnownPii="true" /> </system.serviceModel> Для просмотра журналов дайджестов выполните в средстве просмотра трассировки поиск по ключевому слову "DigestTrace". --> <source name="System.IdentityModel" switchValue="Verbose" logKnownPii="true"> <listeners> <add name="xml" /> </listeners> </source> <!-- Запись в журнал всех сообщений на вкладке "Сообщения" программы SvcTraceViewer. --> <source name="System.ServiceModel.MessageLogging"> <listeners> <add name="xml" /> </listeners> </source> <!-- ActivityTracing и propogateActivity используются для конкретизации сведений на вкладке "Действия" программы SvcTraceViewer с целью облегчения отладки. --> <source name="System.ServiceModel" switchValue="Error, ActivityTracing" propagateActivity="true"> <listeners> <add name="xml" /> </listeners> </source> <!-- Запись данных трассировки, созданных Microsoft.IdentityModel, в том числе исключений самой платформы. --> <source name="Microsoft.IdentityModel" switchValue="Warning"> <listeners> <add name="xml" /> </listeners> </source> </sources> <sharedListeners> <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="trace.e2e" /> </sharedListeners> <trace autoflush="true" /> </system.diagnostics> </configuration>