2014-02-24 36 views
0

我已經下載了WsdlUI,這是一個開源的C#SOAP客戶端,可以在不需要添加引用的情況下使用和處理WCF消息。我可以發佈到具有簡單類型的方法(如字符串和整數)。當WCF方法具有複雜類型時,XML信封不正確。我對WCF有些不好意思,並且對所有的代碼都有些迷茫......有人請幫忙;我如何讓XML返回正確的XML?WsdlUI發佈到複雜類型

我啓用跟蹤我的服務器上,這裏是從具有服務引用一個控制檯應用程序有效的XML信封說:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
<s:Header> 
    <To s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://host.com/BG.WCF/Service.svc</To> 
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://tempuri.org/MobileInterface/CreateQueuedMsg</Action> 
</s:Header> 
<s:Body> 
<CreateQueuedMsg xmlns="http://tempuri.org/"> 
    <Token>add568d9-45e0-0000-98a5-762b84989797</Token> 
    <BGSMSMessage xmlns:a="http://schemas.datacontract.org/2004/07/BG.Bus.Mobile.Classes" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
     <a:BusinessID>Test</a:BusinessID> 
     <a:CommsGUID>eca403e7-1116-4bc3-a476-31e91c4ca33f</a:CommsGUID> 
     <a:DestinationAddress>+27000000000</a:DestinationAddress> 
     <a:Msg>test msg</a:Msg> 
     <a:MsgEncodingType>Default</a:MsgEncodingType> 
     <a:SendDT>2014-02-24T07:21:45.3187492+02:00</a:SendDT> 
     <a:SystemID>Test</a:SystemID> 
     <a:ValidityDT>2014-02-27T07:21:45.3187492+02:00</a:ValidityDT> 
    </BGSMSMessage> 
    <smsRoute xmlns:a="http://schemas.datacontract.org/2004/07/BG.Bus.Mobile.Classes" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
     <a:SMSRoute>BGWASP</a:SMSRoute> 
    </smsRoute> 
</CreateQueuedMsg> 
</s:Body> 

這裏是WsdlUi返回信封:

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
<s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
    <To s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://bgvm08mbl01.businessgenetics.co.za/BG.Bus/BG.Bus.Mobile.WCF/MobileService.svc</To> 
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://tempuri.org/MobileInterface/CreateQueuedMsg</Action> 
</s:Header> 
<soap:Body> 
    <CreateQueuedMsg xmlns="http://tempuri.org/"> 
     <Token>ADD568D9-45E0-498E-98A5-762B84989797</Token> 
     <BGSMSMessage> 
      <BusinessID>Test</BusinessID> 
      <CommsGUID>559eb322-7b01-438d-93f1-74b1aafccc4f</CommsGUID> 
      <DestinationAddress>0000000000</DestinationAddress> 
      <Msg>Testers2014-02-24 07:37:53</Msg> 
      <MsgEncodingType>Default</MsgEncodingType> 
      <SendDT>2014-02-24 07:37:53</SendDT> 
      <SystemID>Test</SystemID> 
      <ValidityDT>2014-02-27 07:37:53</ValidityDT> 
     </BGSMSMessage> 
     <smsRoute> 
      <SMSRoute>BGWASP</SMSRoute> 
      <SMSRoute>GV</SMSRoute> 
     </smsRoute> 
    </CreateQueuedMsg> 
</soap:Body> 

回答

1

我是WsdlUI的開發人員,非常感謝使用它。

由於您提到的錯誤,該應用程序目前不適用於複雜類型。

我應該在6月中旬發佈一個版本來解決這個問題。

感謝您在帖子中對問題的詳細描述。

+0

我已經創建了一個解決方案,但我期待着您的下一個版本。謝謝。 – BossRoss

+0

你能通過我的個人資料中的地址給我發電子郵件嗎?我將向您發送WsdlUI的更新版本,其中應包括此修復。我想檢查下一個版本是否在發佈前修正了這個bug。 – drexyia