2012-01-04 23 views
15

चलाते समय आवश्यक सरल WinForms ऐप बनाया है जो मुफ्त webservice http://www.webservicemart.com/uszip.asmx का उपयोग करता है।डब्ल्यूसीएफ क्लाइंट - 407 प्रॉक्सी प्रमाणीकरण webservice

The remote server returned an unexpected response: (407) Proxy Authentication Required (The ISA Server requires authorization to fulfill the request. Access to the Web Proxy service is denied)

कोड कि प्रॉक्सी बनाता है और सेवा संचालन से चलाता है:

ChannelFactory<ServiceReference1.USZipSoap> proxy = new ChannelFactory<ServiceReference1.USZipSoap>("USZipSoap"); 
ServiceReference1.USZipSoap client = proxy.CreateChannel(); 
string str = client.ValidateZip("12345"); 
MessageBox.Show(str); 

मेरी कंपनी के एक नेटवर्क के साथ इस समस्या है या इस पर एक प्रॉक्सी है लेकिन इस एप्लिकेशन को त्रुटि के साथ सेवा आपरेशन का उपयोग करने में विफल रहता है webservicemart.com की तरफ?

मैंने कॉन्फ़िगरेशन फ़ाइलों को बदलने, कस्टम बाध्यकारी बनाने आदि पर बहुत सारी जानकारी गुगल ली है, लेकिन मुझे अधिक बुनियादी समझ की कमी महसूस होती है ...
यदि यह त्रुटि हमारे कॉर्पोरेट नेटवर्क के आईएसए सर्वर के बारे में है तो क्या कॉन्फ़िगरेशन मुझे बाहरी webservices का उपयोग करने से प्रतिबंधित नहीं करने के लिए आईएसए सर्वर के लिए करना चाहिए?

+1

हाँ यह आपके स्थानीय नेटवर्क में प्रॉक्सी के साथ समस्या है। अपनी बाध्यकारी कॉन्फ़िगरेशन दिखाएं और यह भी जांचें कि क्या आपके पास इंटरनेट एक्सप्लोरर में प्रॉक्सी कॉन्फ़िगर किया गया है या नहीं। –

+0

मैंने अभी अपनी कॉन्फ़िगरेशन तैयार की है लेकिन टिप्पणी आकार फिट करने के लिए यह बहुत बड़ा था और मुझे प्रतिबंध का सामना करना पड़ा कि मैं अपने प्रश्नों का उत्तर नहीं दे सकता।
लेकिन वैसे भी ... मेरे पास वास्तव में मेरी ब्राउज़र सेटिंग्स में प्रॉक्सी कॉन्फ़िगर किया गया है।
मुझे कुछ प्रगति मिली है जब मैंने उपयोग को बदल दिया है DefaultWebProxy सच से गलत तक। और अब मेरे पास एंडपॉइंट नॉटफाउंड अपवाद है "संदेश के साथ http://www.webservicemart.com/uszip.asmx पर कोई एंडपॉइंट नहीं सुन रहा था जो संदेश स्वीकार कर सकता था। यह अक्सर गलत पता या SOAP कार्रवाई के कारण होता है। इनर एक्सेप्शन देखें, अगर मौजूद है , अधिक जानकारी के लिए।" –

+0

और संदेश के साथ System.Net.WebException के अंदरूनी अपवाद "रिमोट नाम को हल नहीं किया जा सका: 'www.webservicemart.com'" –

उत्तर

43

अपनी बाध्यकारी कॉन्फ़िगरेशन में सुनिश्चित करें कि useDefaultWebProxy सत्य पर सेट है - यह IE में आपके द्वारा प्राप्त कॉन्फ़िगरेशन का उपयोग करेगा। आपके विन्यास फाइल में निम्न डिफ़ॉल्ट सुनिश्चित करने के लिए टुकड़ा आपके क्रेडेंशियल्स प्रॉक्सी सर्वर पर प्रमाणीकरण के लिए उपयोग किया जाता है जोड़ें:

<system.net> 
    <defaultProxy useDefaultCredentials="true" /> 
</system.net> 
+0

यह काम करता है! आपका बहुत बहुत धन्यवाद! :) –

+0

यह ध्यान रखना दिलचस्प है कि यह डिफ़ॉल्ट प्रॉक्सी पर संपत्ति को सेट करने जैसा नहीं लगता है। –

+0

@ विंसेन्टहबर्ट यह जानना और भी दिलचस्प है कि वही नहीं है और वहां टिप्पणियां लटकती नहीं हैं –

1

ऐसा लगता है कि आपकी कंपनी के सभी ट्रैफ़िक को प्रॉक्सी के माध्यम से रीडायरेक्ट किया जा रहा है। क्या आप अपने आईई से वेब सेवा पर ब्राउज़ कर सकते हैं और इसके wsdl देख सकते हैं और कुछ परिणाम देखने के लिए परीक्षण पृष्ठ का आह्वान कर सकते हैं। अगर ऐसा है तो अपने web.config में नीचे अनुभाग जोड़ने का प्रयास करें:

<system.net> 
<defaultProxy>  
<proxy proxyaddress="<your proxy address>" bypassonlocal="true" /> 
</defaultProxy> 
</system.net> 

आप अपने IE के सेटिंग्स से प्रॉक्सी पता पा सकते हैं।

नोट: जब आप विभिन्न वातावरण में जाते हैं तो आपको यह सुनिश्चित करना होगा कि वही मामला आपको उपरोक्त कॉन्फ़िगरेशन को हटाने की आवश्यकता है।

+0

उत्तर के लिए बहुत बहुत धन्यवाद। मैंने अभी इस समस्या को हल करने में कुछ प्रगति की है।मैंने useDefaultWebProxy को सच से गलत में बदल दिया है और उसके बाद ऐसा लगता है जैसे मैंने अपनी प्रॉक्सी प्रमाणीकरण पारित कर दिया है। लेकिन मेरे पास अभी भी एक और अपवाद है कि "http://www.webservicemart.com/uszip.asmx पर कोई अंतराल नहीं सुन रहा था जो संदेश स्वीकार कर सकता था।" मैंने एक और मुफ्त webservice भी कोशिश की है और बस एक ही त्रुटि प्राप्त की है। –

+0

मैंने उपर्युक्त वेब सेवा तक पहुंचने का प्रयास किया है और यह ठीक काम करता है। अगर आपको मदद की ज़रूरत है तो बस कुछ और अपडेट पोस्ट करें और आपकी मदद करने का प्रयास कर सकते हैं। – Rajesh

2

यह मेरे लिए काम किया ... 10.1.0.50 और आपके प्रॉक्सी सर्वर का आईपी के साथ पोर्ट नंबर की जगह

<system.net> 
    <defaultProxy useDefaultCredentials="true"> 
     <proxy usesystemdefault="False" proxyaddress="http://10.1.0.50:8080" bypassonlocal="True" /> 
    </defaultProxy> 
    </system.net> 
+0

मैं @ लद्दीस्लाव मिर्का answare का उपयोग कर रहा हूं, लेकिन यह मेरे लिए भी काम करता है। – MFedatto

0

भविष्य में कभी-कभी।

WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials; 
संबंधित मुद्दे