我有与第三方Web服务接口的应用程序。在我的错误日志中,我偶尔会看到一个肥皂故障:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>68A4371:117259187 - Error: Invalid interval in timestamp</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
我已联系过第三方,他们声称我的服务请求并未显示在他们的日志中,并且错误发生在我身边。
我的问题:客户端是否可能出现肥皂故障?
额外信息: 我的客户端代码是在VB.NET中,我们添加了对第三方服务的服务引用。我们构建了自定义绑定以在代码中连接到服务。
答案 0 :(得分:2)
这听起来像是一个典型的供应商 - 他们正在甩掉你,因为支持者是个白痴,他们根本不知道如何解决这个问题。
您的客户端无法自行生成soap fault。它必须来自服务器。
如果您的请求出现问题,则错误代码会显示 soap:Client (而不是 soap:Server ),在这种情况下,您必须执行某些操作要解决这个问题。
这里的问题是服务程序员在故障中添加了故障字符串,这基本上没有意义 -
68A4371:117259187 - 错误:时间戳中的间隔无效
你应该怎么处理这些信息?他们希望您采取什么补偿措施?
来自规范:
faultstring元素旨在提供人类可读性 故障的解释,不适用于算法 处理。 faultstring元素类似于&#39; Reason-Phrase&#39; 由HTTP定义(见[5],第6.1节)。它必须存在于SOAP中 故障元素和应该提供至少一些信息解释 故障的本质。
我猜他们认为客户会像你一样打电话,而且代码对某些初级支持者来说意味着什么。
我会再次回到他们面前告诉他们解决这个问题。