【发布时间】:2015-09-17 12:58:38
【问题描述】:
我有一个 WCF REST Web 服务操作,该操作使用包含来自 PHP 网站的架构固定 XML 内容的 POST 请求调用。 Web服务跟踪上有滚动文件日志,以跟踪处理请求时的任何错误。
有时无法处理传入的消息,因为 POST 请求中的 xml 无效(例如缺少 end 元素)。 为了理解这个问题,我想在我的日志中查看请求中的源 XML 作为原始字符串。
我确实尝试过实现IDispatchMessageInspector,但每当我尝试访问请求正文时,我都会(正确地)得到一个 XmlException。
在System.ServiceModel.MessageLogging 上添加监听器对于这种情况也不起作用。
有什么方法可以实现吗?
【问题讨论】:
-
WCF 可扩展性的一个很好的来源是MSDN blog of Carlos Figueira。您如何访问该消息?您是否尝试过实现自定义trace listener?
-
@JérémieBertrand :我有一个自定义跟踪侦听器,用于将 WCF 跟踪重定向到我的滚动文件附加程序(由 log4Net 提供)。这不是问题,当我尝试记录请求时,我所拥有的只是消息不是 XML 有效的。无法检索无效 XML 消息的字符串表示来查看它有什么问题。
-
解决方案可能是实现自定义Message Formatter,使用 WebContentFormat.Raw 应该保留消息。