1

我有一堆很棒的工作代码,可以访问各种 REST(有时是 SOAP)api。它都是基于 .NET 4.0 的 WCF。

但有时我访问的系统会返回错误的 xml(啊哈,用字符串构建 xml 的开发人员......坏人!)。

所以 XML 不好,WCF 抛出(应该)... system.invalidoperationexception ... xml 文档中的错误 ... [字符串 FOO 不是有效的布尔值] [或其他一些解析错误] ...

我需要记录 HTTP POST/GET 响应的完整原始 xml(反序列化失败的响应)。出于某种原因,我似乎无法弄清楚在 WCF 的什么地方可以找到这个。

4

2 回答 2

1

如果您需要访问请求的原始数据,您需要去的地方是自定义消息编码器。您可以做的是创建自己的编码器(可能包装现有的编码器),然后您将获得来自传输层的原始字节。您可以在http://blogs.msdn.com/b/carlosfigueira/archive/2011/11/09/wcf-extensibility-message-encoders.aspx找到有关自定义编码器的更多信息。

于 2013-01-29T06:10:40.633 回答
0

启用跟踪并查看哪里有问题。有一个不错的应用 AppFabric,您可以在其中轻松更改您的 tacing 设置并查看异常消息。请参阅http://msdn.microsoft.com/en-us/library/ms751526.aspx

于 2013-01-29T06:24:54.520 回答