Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml BizTalk-0参数web消息未在请求中发送_Xml_Soap_Biztalk_Biztalk 2013 - Fatal编程技术网

Xml BizTalk-0参数web消息未在请求中发送

Xml BizTalk-0参数web消息未在请求中发送,xml,soap,biztalk,biztalk-2013,Xml,Soap,Biztalk,Biztalk 2013,我连接到一个SOAP1.1Web服务,不接受任何参数,并返回一个简单的字符串响应 我使用旧的.NET 2.0 Add Web引用生成了复杂类型的xsd文件,该引用还生成了Reference.odx中的端口和多部分消息类型 在编排中,我使用Web消息类型下正确的多部分消息作为请求和响应消息的类型,并在发送操作之前为请求消息使用空的构造消息形状 尽管显式构造了没有参数的请求消息,但我可以看到(在Fiddler中)对服务的请求是正确构建的,但是没有请求主体。我期待着 <soap:Enve

我连接到一个SOAP1.1Web服务,不接受任何参数,并返回一个简单的字符串响应

我使用旧的.NET 2.0 Add Web引用生成了复杂类型的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的自动关闭请求的预期请求主体,并重播失败的请求,然后成功

我能想到两个可能出错的地方:

  • 在编排中构造消息
  • 我的端口适配器可能会忽略空消息,而不在请求正文中包含SOAP信封

  • 即使正文是空的,我如何强制SOAP信封出现?

    我的问题是直接在编排中使用自动生成的web消息造成的。我通过以下方式“解决”了我的问题:

  • 使用.NET 2.0添加Web引用来保存wsdl以生成服务的xsd
  • 使用“添加生成的项目…”使用WCF服务,使用wsdl和xsd选项并选择在1中生成的文件
  • 手动更改生成的文件以删除某些重复的复杂类型和无效导入
  • 更改odx,将消息类型上的修饰符更改为public(从内部)
  • 从我的BizTalk项目中排除web引用以避免重复
  • 然后,我可以在编排中使用生成的多部分消息。关键的是,不带参数的服务的消息是用一个消息部分定义的,我可以使用消息分配形状来硬编码没有内容的消息部分


    我还获得了一些其他好处,例如异常类型。

    为什么要使用添加Web引用?SOAP适配器已被弃用。@boatseller,因为“使用WCF服务向导”在此服务上不起作用。我没有使用SOAP适配器,我使用的是WCF Customer。你能发布你在Fiddler中看到的内容吗?@Dijkgraf请求正文是空的,当你说一条空的构造消息时,没有什么可发布的。您至少应该创建根节点吗?