从System.ServiceModel.Channels.Message获取原始字节

时间:2019-06-14 15:56:06

标签: xml exception soap

我正在做一些C#SOAP的工作,并且工作正常,直到突然我的请求之一失败并出现XmlException“字节0x1B在此位置无效。第231行,位置10。”

这是一个相当详细的例外,问题在于SOAP服务器是第三方产品,并且我无法访问服务器端的任何内容;我想做的所有调试工作都必须在客户端进行。

我添加了我自己的IEndpointBehavior对象,并在其ApplyClientBehavior()中添加了我自己的IClientMessageInspector对象,并调用了AfterReceiveReply(),但是一旦获得对Message对象的引用,就不会似乎是我可以做的任何事情。

我在Message对象上进行的任何调用都给出相同的XmlException。先执行GetReaderAtBodyContents(),再执行ReadOuterXml()。调用CreateBufferedCopy()即可。调用WriteBody()即可。我在网上看到的大多数建议都是从CreateBufferedCopy()开始的,因为我做不到,所以我陷入了困境。我在Message对象上看到的所有其他功能都涉及XmlWriters,因此我认为它们也会失败。

基本上,我无法弄清楚如何获取响应的原始字节,而没有先让它通过XML解析器就抛出XmlException,而我没有得到字节。

附加

我在app.config中添加了几行,以将数据包记录到SVCLOG文件中,并且错误数据包也没有显示在那里!我看到了其他请求和响应,以及导致错误响应的请求,但在SVCLOG文件中没有看到任何响应。

0 个答案:

没有答案