我正在连接到不接受任何参数并返回简单字符串响应的 SOAP 1.1 Web 服务。
我使用旧的 .NET 2.0 Add Web Reference为复杂类型生成了我的 xsd 文件,它还在 Reference.odx 中生成了端口和多部分消息类型
在我的编排中,我在Web 消息类型下使用正确的多部分消息作为我的请求和响应消息的类型,并在发送操作之前为请求消息使用空的构造消息形状。
尽管明确构造了没有参数的请求消息,但我可以(在 Fiddler 中)看到对服务的请求是正确构建的,但没有请求正文。我期待
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:myns="http:myns">
<soap:Body>
<myns:ServiceName/>
</soap:Body>
</soap:Envelope>
端口和适配器设置正确,因为我可以手动插入带有名为 node 的自动关闭请求的预期请求主体,然后重播失败的请求,然后成功。
我可以想到 2 个可能出错的地方:
- 在编排中构造消息
- 我的端口适配器可能会忽略空消息,并且在请求正文中不包括 SOAP 信封
即使正文为空,如何强制 SOAP 信封存在?