WCF BasicHttpBinding: ProxyAddress और UseDefaultWebProxy
ट्रांसपोर्ट क्रेडेंशियल बदलने से पहले BasicHttpBinding के स्पष्ट प्रॉक्सी पते और डिफ़ॉल्ट प्रॉक्सी चयन को सुसंगत बनाएँ।
जनरेट किए गए सर्विस क्लाइंट में सर्विस एंडपॉइंट और प्रॉक्सी-संबंधित बाइंडिंग सेटिंग्स दोनों हो सकती हैं। शुरू में पहचानें कि कौन-सा पता किस भूमिका का है। SOAP सेवा गंतव्य बनी रहती है; ProxyAddress एक मध्यस्थ का नाम देता है।
BasicHttpBinding के लिए, UseDefaultWebProxy स्वतः कॉन्फ़िगर किए गए प्रॉक्सी व्यवहार को चुनता है और डिफ़ॉल्ट रूप से true होता है। Microsoft का अनुबंध उस true मान को गैर-null स्पष्ट ProxyAddress के साथ जोड़ने का समर्थन नहीं करता। दोनों निर्दिष्ट करके यह मानने के बजाय कि एक चुपचाप जीत जाएगा, चयन को सुसंगत बनाएँ। अनुमत अनप्रमाणित सार्वजनिक प्रॉक्सी मार्ग पर सार्वजनिक रूप से पहुँचने योग्य SOAP सेवा के लिए HTTP प्रॉक्सी सूची ProxyAddress के लिए उम्मीदवार पते देती है; किसी अन्य एंडपॉइंट से कोई प्रॉक्सी क्रेडेंशियल न रखें।
जाँचें कि एंडपॉइंट वास्तव में कौन-सी बाइंडिंग उपयोग करता है
एक सहायक फ़ंक्शन सही बाइंडिंग बना सकता है, जबकि जनरेट किया गया क्लाइंट अभी भी किसी अन्य कॉन्फ़िगर किए गए एंडपॉइंट का उपयोग करता है। विफल कॉल को सौंपी गई बाइंडिंग की जाँच करें। ऐसी कॉन्फ़िगरेशन प्रविष्टि बदलने से, जिसे क्लाइंट ने कभी नहीं चुना, उसके मार्ग पर प्रभाव नहीं पड़ सकता।
फिर प्रॉक्सी क्रेडेंशियल के प्रकार को सेवा क्रेडेंशियल के प्रकार से अलग करें। SOAP सेवा द्वारा माँगा गया पासवर्ड स्वतः चुने गए नेटवर्क मध्यस्थ के लिए खाता नहीं होता।
ट्रांसपोर्ट सुरक्षा मोड एक और निर्णय है। केवल इसलिए कि कोई पुराना उत्तर सुझाव देता है, केवल-क्रेडेंशियल मोड में जाने से ट्रांसपोर्ट की मान्यताएँ बदल जाती हैं; यह सिद्ध नहीं करता कि मार्ग या खाता सही है। इच्छित गंतव्य TLS बनाए रखें और वह प्रमाणीकरण व्यवस्था उपयोग करें जिसे तैनात WCF क्लाइंट और प्रॉक्सी समर्थन करते हैं।
उपयोगी निदान सर्विस एंडपॉइंट, चयनित प्रॉक्सी स्रोत, बाइंडिंग इंस्टेंस और पहले प्रतिक्रिया चरण का नाम बताता है। यह 407 को सीमित करता है, बिना जनरेट किए गए सर्विस क्लाइंट को असंबद्ध कॉन्फ़िगरेशन अनुमानों के संग्रह में बदले।