0

我对 Web 服务和 WSDL 很陌生。

我想做的是构建一个 Web 服务来读取客户的 SOAP 消息并对其进行处理。

发给我的soap消息如下(注意我已经把SOAP消息剪掉了)

<Envelope xmlns="http://www.w3.org/2003/05/soap-envelope">
 <soap2:Header>
  <wsa:Action>http://htng.org/PWSWG/2010/12/ReservationSynch_SubmitRequest</wsa:Action> 
  <wsa:ReplyTo>
   <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> 
  </wsa:ReplyTo>
 </soap2:Header>
 <Body>
  <OTA_HotelResNotifRQ>
   <POS>
     //More tags
   </POS>
   <HotelReservations>
    <HotelReservation RoomStayReservation="true">
     <UniqueID Type="14" ID="59071IC000041" /> 
    </HotelReservation>
   </HotelReservations>
  </OTA_HotelResNotifRQ>
 </Body>
</Envelope>

这是我的 Web 服务 asmx(我再次对其进行了修剪)

[WebMethod]
[SoapDocumentMethodAttribute("http://htng.org/PWSWG/2010/12/ReservationSynch_SubmitRequest", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Bare)]

public OTA_HotelResNotifRS ReservationSynch_SubmitRequest(OTA_HotelResNotifRQ OTA_HotelResNotifRQ)
{

}

问题:当消息进入时,方法 ReservationSynch_SubmitRequest 被触发,但 OTA_HotelResNotifRQ 为空。客户给了我 WSDL,就我而言,课程是正确的。虽然我注意到<Body>标签而不是<soap2:Body>. 这有什么不同吗?

我无法更改客户的消息,我只能更改我的网络服务以阅读他们发送给我的内容。我在我的 asmx 中遗漏了什么吗?

如果你有兴趣,这里是他们的 WSDL https://interface.synxis.com/interface/ota2010av2/OTA2010A.svc.wsdl

4

1 回答 1

0

发现问题了!

我更改了几个类的名称空间,这影响了 WSDL 中的模式文件。

于 2013-06-07T14:48:47.487 回答