【问题标题】:Biztalk 2013 WCF-webhttp (WCF web publishing wizard) not exposing schemasBiztalk 2013 WCF-webhttp(WCF Web 发布向导)不公开架构
【发布时间】:2015-07-20 09:47:32
【问题描述】:

想知道你们是否可以提供帮助。我已经使用 BizTalk WCF 服务发布向导通过 WCF-WebHttp 公开编排,我可以看到该服务,并且可以通过 SOAPUi 等向它发送请求,但是,当我尝试和将服务引用添加到 .NET 应用程序。我确保架构在同一个项目中,并且在部署服务之前,实际的 DLL 是 GAC 的。

我查看了 wsdl,但看不到与架构相关的任何内容。

<wsdl:types>
   <xs:schema elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/Message" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://schemas.microsoft.com/Message">
      <xs:complexType name="MessageBody">
         <xs:sequence>
             <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" /> 
         </xs:sequence>
      </xs:complexType>
   </xs:schema>
</wsdl:types>
<wsdl:message name="ITwoWayAsync_BizTalkSubmit_InputMessage">
   <wsdl:part name="message" type="q1:MessageBody" xmlns:q1="http://schemas.microsoft.com/Message" /> 
  </wsdl:message>
  <wsdl:message name="ITwoWayAsync_BizTalkSubmit_OutputMessage">
     <wsdl:part name="BizTalkSubmitResult" type="q2:MessageBody" xmlns:q2="http://schemas.microsoft.com/Message" /> 
  </wsdl:message>
  <wsdl:portType name="ITwoWayAsync">
  <wsdl:operation name="BizTalkSubmit">
  <wsdl:input wsaw:Action="BizTalkSubmit" message="tns:ITwoWayAsync_BizTalkSubmit_InputMessage" /> 
  <wsdl:output wsaw:Action="http://www.microsoft.com/biztalk/2006/r2/wcf-adapter/ITwoWayAsync/BizTalkSubmitResponse" message="tns:ITwoWayAsync_BizTalkSubmit_OutputMessage" /> 
 </wsdl:operation>
 </wsdl:portType>
 <wsdl:service name="BizTalkServiceInstance" /> 
</wsdl:definitions>

当我尝试向服务添加服务引用时,它成功添加了引用,但是对于名为 BizTalkSubmit 的方法,它只需要 System.ServiceModel.Channels.Message 的参数。

非常感谢任何想法。

问候

爵士乐

【问题讨论】:

  • WCF-WebHttp 不使用 WSDL 或“强类型”消息传递。您在这里以一种不一定有意义的方式混合范式。如果您想使用强类型消息传递并具有添加服务引用的功能,请使用基于 SOAP 的协议,例如 WCF-WSHttp/BasicHttp

标签: biztalk biztalk-2013


【解决方案1】:

我建议您先使用 WCF-WSHttp 发布,然后再更改为 WCF-WebHttp。这将使您能够选择要发布的架构:

【讨论】:

  • 您好,为了确认一下,先发布架构,然后将 BizTalk Admin 中接收端口中的传输更改为 WCF-WebHttp?谢谢
  • 是的,发布向导只是达到目的的一种手段,用于生成服务的 WSDL。然后,您将能够在客户端上添加服务引用,并为您生成代理类。
  • 请记住,如果您使用 WCF-WebHttp,那么您正在设计一个安静的服务。WSDL 不再真正适合这种情况。 @Gruff,您确定此方法一旦更改为 WCF-WebHttp 就真的有效吗?如果是这样,它就不会像您真正公开基于 SOAP 的接口那样可靠。
  • @DanField。我最初也是这么认为的,但是,我认为如果我向客户公开服务,他们将如何验证响应?如果他们有一个对象(类似于您连接到非休息服务的情况,并且模式是可检索的,那么这将起作用(很高兴在上面得到纠正,只是大声思考......))
  • 是的,但是为什么要使用 REST 呢?如果您要发送和接收对象,请使用简单对象访问协议 :)
猜你喜欢
  • 1970-01-01
  • 2011-05-18
  • 2020-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-30
  • 2016-01-10
  • 2020-01-18
相关资源
最近更新 更多