2017-10-24 1 views
0

OTA_AirBookLLSRQ 다음에 PassengerDetailsRQ를 사용하여 예약하려고합니다. 나는 OTA_AirBookLLSRQ에서 성공할 수 있지만, 아래 오류로 PassengerDetailsRQ에서 실패합니다.잘못된 버전 번호 오류로 Sabre PassengerDetailsRQ가 실패했습니다.

세이버 CERT 환경을 가리키며이 문제가 발생했습니다.

내 요청에 무엇이 잘못되었는지 알려주십시오.

System.ServiceModel.FaultException : System.ServiceModel.Channels.ServiceChannel.EndCall (문자열 액션에서 System.ServiceModel.Channels.ServiceChannel.HandleReply (ProxyOperationRuntime 운영, ProxyRpc & RPC)에서 잘못된 서비스 버전, 에서 Object [] 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

관련 문제