डिफ़ॉल्ट प्रॉक्सी का उपयोग किए बिना, डब्लूसीएफ क्लाइंट पर, HTTP प्रॉक्सी प्रोग्रामेटिक रूप से कैसे सेट कर सकता हूं?मैं एक डब्ल्यूसीएफ क्लाइंट-साइड सेवा प्रॉक्सी पर HTTP प्रॉक्सी (WebProxy) कैसे सेट कर सकता हूं?
प्रॉक्सी, प्रॉक्सी, प्रॉक्सी।
विकास के डब्ल्यूसीएफ मॉडल के अनुसार, मैं सेवा के लिए डब्लूएसडीएल पर svcutil.exe चलाकर क्लाइंट-साइड "प्रॉक्सी" कक्षाएं उत्पन्न करता हूं। (यह भी क्लाइंट-साइड कॉन्फ़िगरेशन फ़ाइल बनाता है)।
मेरे कोड में मैं उस वर्ग का एक उदाहरण नया हूं और मैं सेवा से कनेक्ट कर सकता हूं। बहुत अच्छा।
var svcProxy = new MyWebService();
svcProxy.GetInformation(request);
हम इस चीज़ को प्रॉक्सी क्लास कहते हैं, लेकिन एक और प्रॉक्सी - http प्रॉक्सी है। यह सेवा wsHttp बाइंडिंग basicHttp बाइंडिंग का उपयोग कर रही है, इसलिए यह http से अधिक हो रही है। अब, मान लीजिए कि मैं ग्राहक को वेब सेवा पर पर एक HTTP प्रॉक्सी (.NET BCL में System.Net.WebProxy द्वारा मॉडलिंग) से कनेक्ट करना चाहता हूं। मैं को अपने व्यापक, मोहक अनुभव से .NET और WCF दस्तावेज़ों को पढ़ता हूं, डब्ल्यूसीएफ रनटाइम, अगर अन्यथा निर्देशित नहीं किया गया है, तो http/https पर संचार करते समय डिफ़ॉल्ट सिस्टम प्रॉक्सी का उपयोग करेगा।
मैं WinXP/2003 with ProxyCfg.exe as described here में कमांड लाइन से सेट कर सकते हैं कि, और Windows with netsh.exe as described here के बाद के संस्करणों में ।
मैं System.Net.WebRequest.DefaultWebProxy property सेट करके एप्लिकेशन के भीतर उपयोग के लिए डिफ़ॉल्ट वेब प्रॉक्सी भी निर्दिष्ट कर सकता हूं।
लेकिन मान लीजिए कि मैं सिस्टम-व्यापी प्रॉक्सी से अलग प्रॉक्सी से कनेक्ट करना चाहता हूं? उदाहरण के लिए शायद कोई सिस्टम-व्यापी प्रॉक्सी नहीं है लेकिन मुझे विशेष रूप से वेब सेवा के लिए उपयोग करने की आवश्यकता है। या शायद एक सिस्टम-व्यापी प्रॉक्सी है लेकिन मुझे वेब सेवा के लिए एक अलग उपयोग करने की आवश्यकता है। और वास्तव में शायद कई वेब सेवा क्लाइंट हैं, और प्रत्येक को एक अलग प्रॉक्सी मिलनी चाहिए।
प्रॉक्सी प्रति बाध्यकारी कैसे सेट किया जा सकता है?
ASMX मॉडल में, मैं यह कर सकता है:
var svcProxy = new MyWebService();
svcProxy.Proxy = new System.Net.WebProxy("http://proxyserver:1234", true);
svcProxy.GetInformation(request);
लेकिन इस WCF साथ संभव नहीं है; डब्ल्यूसीएफ-जेनरेट क्लाइंट-साइड प्रॉक्सी कक्षाएं प्रॉक्सी प्रॉपर्टी का पर्दाफाश नहीं करती हैं। मैं http प्रॉक्सी प्रति क्लाइंट-साइड प्रॉक्सी कैसे सेट करूं, और मैं http प्रॉक्सी पर भी प्रमाणीकरण कैसे सेट करूं?
संबंधित:
- how-to-set-proxy-with-credentials-to-generated-wcf-client
+1 BasicHttp बाइंडिंग – Lijo