В приведенной ниже конфигурации показано, как включить трассировку 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> |