Әр прокси тіркелгісі үшін жеке .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 жеткізушісі кейінгі шақыруларға жауап бере алады, бірақ қалыптасқан туннельді басқа тіркелгі ретінде қайта белгілей алмайды. Асинхронды шақырулар айналасында бір ғана ғаламдық пайдаланушы аты/құпия сөзді тағайындау шақыру уақыты мен тіркелгі меншігін қайшылықта қалдырады.
Қайта пайдалану қажет болғанда шектеулі клиенттер жиынын ұстаңыз. Тасымалын жою алдында ескі жұмысты ағызып тастаңыз. Әр сұранысқа жаңа өңдеуші қосылым пулдарын ысырап етеді; барлық тарихи тіркелгілерді мәңгі сақтау оларды шектеусіз өсіреді.