हर प्रॉक्सी खाते के लिए अलग .NET हैंडलर रखें
एक साथ चलने वाले खातों के लिए अलग हैंडलर बनाएं, पहले से अनुरोधों की सेवा कर रहे ट्रांसपोर्ट पर WebProxy.Credentials बदलने के बजाय।
एक ट्रांसपोर्ट अपने पूल मैनेजर के बनते समय चुने गए प्रॉक्सी क्रेडेंशियल-प्रदाता ऑब्जेक्ट को बनाए रख सकता है। बाद में WebProxy.Credentials बदलना खाता बदलने का भरोसेमंद तरीका नहीं है।
क्लाइंट का उपयोग करने से पहले रूट और खाता साथ में बनाएं:
var proxy = new System.Net.WebProxy(proxyEndpoint)
{
Credentials = new System.Net.NetworkCredential(proxyUser, proxyPassword)
};
var handler = new System.Net.Http.HttpClientHandler
{
UseProxy = true,
Proxy = proxy
};
var client = new System.Net.Http.HttpClient(handler);एंडपॉइंट और क्रेडेंशियल एप्लिकेशन कॉन्फ़िगरेशन से आते हैं। दूसरी पहचान के लिए दूसरा हैंडलर बनाएं; पहला हैंडलर साझा करने वाला दूसरा HttpClient उसकी नीति भी साझा करता है।
कस्टम ICredentials प्रदाता बाद की चुनौतियों का उत्तर दे सकता है, पर वह स्थापित टनल को दूसरे खाते के रूप में फिर से लेबल नहीं कर सकता। असिंक्रोनस कॉलों के आसपास एक वैश्विक उपयोगकर्ता नाम/पासवर्ड असाइन करने से चुनौती का समय और खाते का स्वामित्व टकराव में रहते हैं।
जब पुनः उपयोग की आवश्यकता हो तो सीमित क्लाइंट सेट रखें। उसका ट्रांसपोर्ट निपटाने से पहले पुराना काम निकाल दें। प्रति अनुरोध नया हैंडलर कनेक्शन पूल बर्बाद करता है; हर ऐतिहासिक खाते को हमेशा रखने से वे बिना सीमा के बढ़ते हैं।