我正在做一些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文件中没有看到任何响应。