2017-10-24 16 views
0

OTA_AirBookLLSRQに続いてPassengerDetailsRQを使用して予約をしようとしています。私はOTA_AirBookLLSRQで成功することができますが、以下のエラーでPassengerDetailsRQで失敗します。無効なバージョン番号のエラーでSabre PassengerDetailsRQが失敗する

私はSaber CERT環境を指摘しており、この問題が発生しています。

私のリクエストに間違いがあることを指摘するのを手伝ってください。

System.ServiceModel.FaultException: System.ServiceModel.Channels.ServiceChannel.EndCall(文字列アクションで System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime 操作、ProxyRpc & RPC)で無効なサービス・バージョン、 オブジェクト[] outs、IAsyncResult result): System.ServiceModel.Channels.ServiceChannelProxy.TaskCreator。 <> c__DisplayClass7_0 1.<CreateGenericTask>b__0(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory 1.FromAsyncCoreLogic(たIAsyncResult IAR、のFunc 2 endFunction, Action 1 endAction、Task`1の約束、ブール requiresSynchronization)

PassengerDetailsRQの要求XMLSである

MessageHeader

<?xml version="1.0" encoding="utf-16"?> 
<MessageHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" d1p1:version="2.0" xmlns:d1p1="http://www.ebxml.org/namespaces/messageHeader"> 
    <d1p1:From> 
     <d1p1:PartyId>99999</d1p1:PartyId> 
    </d1p1:From> 
    <d1p1:To> 
     <d1p1:PartyId>123123</d1p1:PartyId> 
    </d1p1:To> 
    <d1p1:CPAId>TestCPA</d1p1:CPAId> 
    <d1p1:ConversationId>20171024T155602Z</d1p1:ConversationId> 
    <d1p1:Service>PassengerDetailsRQ</d1p1:Service> 
    <d1p1:Action>PassengerDetailsRQ</d1p1:Action> 
    <d1p1:MessageData> 
     <d1p1:MessageId>mid:[email protected]</d1p1:MessageId> 
     <d1p1:Timestamp>20171024T155602Z</d1p1:Timestamp> 
    </d1p1:MessageData> 
</MessageHeader> 

セキュリティオブジェクト

<?xml version="1.0" encoding="utf-16"?> 
<Security xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <BinarySecurityToken xmlns="http://schemas.xmlsoap.org/ws/2002/12/secext">Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/CERTG!ICESMSLB\/CRT.LB!-3218433817369427567!1447734!0</BinarySecurityToken> 
</Security> 

PassengerDetailsRQ

<?xml version="1.0" encoding="utf-16"?> 
<PassengerDetailsRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <PostProcessing xmlns="http://services.sabre.com/sp/pd/v3_3"> 
     <EndTransactionRQ> 
      <EndTransaction Ind="true" /> 
      <Source ReceivedFrom="Oneworld RTW" /> 
     </EndTransactionRQ> 
    </PostProcessing> 
    <SpecialReqDetails xmlns="http://services.sabre.com/sp/pd/v3_3"> 
     <SpecialServiceRQ> 
      <SpecialServiceInfo> 
       <AdvancePassenger SegmentNumber="A"> 
        <PersonName NameNumber="1.1"> 
         <GivenName>Narasimham</GivenName> 
         <MiddleName>Venkata Lakshmi</MiddleName> 
         <Surname>Akella</Surname> 
        </PersonName> 
       </AdvancePassenger> 
      </SpecialServiceInfo> 
     </SpecialServiceRQ> 
    </SpecialReqDetails> 
    <TravelItineraryAddInfoRQ xmlns="http://services.sabre.com/sp/pd/v3_3"> 
     <CustomerInfo> 
      <PersonName NameNumber="1.1" PassengerType="ADT"> 
       <GivenName>Narasimham</GivenName> 
       <Surname>Akella</Surname> 
      </PersonName> 
     </CustomerInfo> 
    </TravelItineraryAddInfoRQ> 
</PassengerDetailsRQ> 

コードSOAPプロキシクラスを介して要求を配置するための

PassengerDetails.PassengerDetailsPortTypeClient paxDetCli = new PassengerDetails.PassengerDetailsPortTypeClient("PassengerDetailsPortType1" + envName); 
       Task<PassengerDetails.PassengerDetailsRQResponse> resp = paxDetCli.PassengerDetailsRQAsync(msgHeader, security, paxDetReq); 
       resp.Wait(); 
       txtResult.Text += "Sucess Response:" + SerializeObject(typeof(PassengerDetails.PassengerDetailsRQResponse), resp.Result); 

答えて

1

誤差はかなりそれをすべて言います。この場合、バージョン宣言がありません。

version="3.3.0"をサービスリクエストのヘッダーに追加する必要があります。

+1

PassengerDetailsRQにバージョン3.3.0を追加すると、魔法がかかりました。お手伝いありがとう。どうしてPassengerDetailsRQだけがバージョンエラーを持っているのだろうと思います。他の呼び出しでは、リクエストボディレベルでバージョンを渡さなかったのです。 – Narasimham

関連する問題