Как я могу зарегистрировать, какой xml отправлен на мою службу WCF REST до того, как будет десериализован в мой класс datacontract?WCF REST Отладка
ответ
Вы можете использовать трассировку WCF для регистрации необработанных XML-сообщений.
Трассировка по умолчанию не включена. Вы можете включить и настроить трассировку, отредактировав файл конфигурации приложения. Следующий пример позволяет .config
WCF трассировки с сырой регистрацией сообщений:
<configuration>
<system.serviceModel>
<diagnostics>
<messageLogging maxMessagesToLog="30000"
logEntireMessage="true"
logMessagesAtServiceLevel="true"
logMalformedMessages="true"
logMessagesAtTransportLevel="true">
</messageLogging>
</diagnostics>
</system.serviceModel>
<system.diagnostics>
<sources>
<source name="System.IdentityModel"
switchValue="Verbose"
logKnownPii="true">
<listeners>
<add name="xml" />
</listeners>
</source>
<!-- Log all messages in the 'Messages' tab of SvcTraceViewer. -->
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml" />
</listeners>
</source>
<!-- ActivityTracing and propogateActivity are used to
flesh out the 'Activities' tab in SvcTraceViewer to
aid debugging. -->
<source name="System.ServiceModel"
switchValue="Error, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="xml" />
</listeners>
</source>
<!-- This records Microsoft.IdentityModel generated traces,
including exceptions thrown from the framework. -->
<source name="Microsoft.IdentityModel" switchValue="Warning">
<listeners>
<add name="xml" />
</listeners>
</source>
</sources>
<sharedListeners>
<add name="xml"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="C:\logs\trace.svclog" />
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
</configuration>
Вы можете прочитать больше о WCF Трассировке из MSDN: Configuring Tracing.
Корпорация Майкрософт предоставляет файл Service Trace Viewer Tool для чтения файлов .svclog.
Убедитесь, что путь, определенный в initializeData
, может быть доступен для записи вашей службой.
Если вы хотите посмотреть необработанный HTTP-трафик, прокси-инструмент, такой как Fiddler, является самым простым способом. Вы сможете увидеть всю информацию, которая была POST/PUT'd для вашего сервиса REST.
Если вы имеете в виду «журнал», как в «всегда записывать HTTP-трафик в определенное место в файле», то вы можете использовать встроенную трассировку для большей части этого. Here is a link на пример этого, иначе просто найдите «трассировку WCF» в Интернете. Вы найдете массу отличных примеров.
- 1. WCF Отладка REST api
- 2. WCF REST и asp.net и отладка
- 3. Отладка netTcp привязки WCF
- 4. Отладка службы RESTful WCF
- 5. Отладка службы обратного вызова WCF
- 6. Отладка WCF Исключение вызывает CommunicationException
- 7. Отладка именованных каналов в WCF
- 8. Службы активации Windows WCF Отладка
- 9. Отладка JIRA Rest Api Call
- 10. Аутентификация WCF Rest webservices
- 11. WCF REST POST XML
- 12. REST WCF аутентификации
- 13. wcf rest service idempotent
- 14. WCF REST службы IErrorHandler
- 15. Аутентификация службы WCF REST
- 16. Аутентификация в wcf Rest
- 17. Операция завершена WCF Rest
- 18. WCF REST RequestInterceptor authentication
- 19. Файл загрузки WCF REST
- 20. WCF Rest Пользовательский URL
- 21. Соединение REST и WCF
- 22. WCF REST Autetication
- 23. WCF/REST Logging
- 24. WCF Rest with Unity
- 25. WCF REST Проверка подлинности
- 26. WCF REST over HTTPS
- 27. WCF REST ошибки TCP
- 28. WCF REST - MaxMessageSize превышено
- 29. WCF REST Compression
- 30. WCF rest services defaultconnectionlimit
Сервис Trace Viewer является удивительным. – Jay