2011-11-21 27 views
6

में इंटीजर मान खो गया है मेरे पास एक ऐसा एप्लिकेशन है जो एमएसआई का यूआरएल प्राप्त करने के लिए वेब सेवा कॉल करता है, इस पर निर्भर करता है कि उपयोगकर्ता का कंप्यूटर 32 बिट या 64 बिट है या नहीं।वेब सेवा कॉल

कॉल GetURLByOS 2 विधियों (1. स्ट्रिंग प्रमाणीकरणइन्फो, 2. int osBit) लेता है। जैसा कि मैं डिबगिंग कर रहा हूं, मैं प्रमाणीकरण जानकारी देख सकता हूं। वेब सेवा में कॉल करते समय osBit का मान 8 (64 बिट के लिए) है। लेकिन वास्तव में वेब सेवा में जब इसका मूल्य गुम हो जाता है (0)।

क्या कोई मुझे यह समझने में सहायता कर सकता है कि पूर्णांक मूल्य क्यों खो गया है?

अद्यतन: मैं प्रक्रिया को जोड़ रहा हूं। क्लाइंट में, मुझे लगता है कि मूल्य 8 पास किया जा रहा है। वेब सेवा कॉल में, मुझे 0. यह एक SOAP वेब सेवा कॉल है।

[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://mydomain.com/product/1.0/GetURLByOs", RequestNamespace = "http://mydomain.com/product/1.0", ResponseNamespace = "http://mydomain/product/1.0", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] 
     public string GetURLByOs(string eTicket, int OsBitType) 
     { 
      object[] results = this.Invoke("GetURLByOs", new object[] { 
         eTicket, OsBitType}); 
      return ((string)(results[0])); 
     } 

यहाँ वास्तविक वेब सेवा है:: यहाँ क्लाइंट पर डबल्यूएसडीएल कोड है,

[WebMethod] 
     public string GetURLByOs(string eTicket, int osBitType) 
     { 
      return MyFacade.GetUrl(eTicket, osBitType); 
     } 

BTW जब मैं स्ट्रिंग टाइप करने के लिए पैरामीटर बदलने के लिए, यह ठीक से पारित कर दिया जाता है (मूल्य "8") । यह केवल तब होता है जब मैं इसे एक पूर्णांक के रूप में पास करता हूं कि मान शून्य हो जाता है।

+3

क्या आपके पास क्लाइंट पर पुरानी बाध्यकारी/प्रॉक्सी है? – BrokenGlass

+1

क्या आप डब्ल्यूसीएफ का उपयोग कर रहे हैं? और जब आप कहते हैं कि मान "खो गया" है, तो क्या आपका मतलब है कि जब आप अपनी वेब सेवा में डीबगर संलग्न करते हैं और अपनी तर्क को घड़ी में डालते हैं, तो यह 0 का मान दिखाता है? –

+1

क्षमा करें, लेकिन किसी अन्य चीज़ (कोड, डब्लूएसडीएल, आदि) पर जाने के बिना यह पता लगाना लगभग असंभव है ... –

उत्तर

3

मुझे पता चला कि समस्या क्या थी। (क्लाइंट) डब्ल्यूएसडीएल कोड पर, पैरामीटर ओएसबीट टाइप है। लेकिन वास्तविक वेब सेवा पर, पैरामीटर osBitType है। ओएसबीट टाइप में वेब सेवा पैरामीटर बदलने के बाद, यह ठीक काम कर रहा है।

अजीब बात यह है कि पैरामीटर एक स्ट्रिंग है, यह तब नहीं होता है।

1

मेरी स्थिति के लिए, वेब सेवा के संदर्भ संदर्भ के बाद, यह ठीक काम कर रहा है।

संबंधित मुद्दे