Har bir proxy hisobi uchun alohida .NET ishlovchisini saqlang
So‘rovlarga xizmat ko‘rsatib turgan transportda WebProxy.Credentials ni almashtirish o‘rniga bir vaqtda ishlaydigan hisoblar uchun alohida ishlovchilar yarating.
Transport o‘zining hovuz menejeri yaratilganda tanlangan proxy hisob ma’lumotlari provayderi obyektini saqlab qolishi mumkin. Keyin WebProxy.Credentials ni almashtirish hisobni almashtirishning ishonchli amali emas.
Mijozdan foydalanishdan oldin marshrut va hisobni birga yarating:
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);Yakuniy nuqta va hisob ma’lumotlari ilova konfiguratsiyasidan olinadi. Ikkinchi shaxs uchun boshqa ishlovchi yarating; birinchi ishlovchini bo‘lishadigan boshqa HttpClient uning siyosatini ham bo‘lishadi.
Maxsus ICredentials provayderi keyingi chaqiriqlarga javob bera oladi, lekin o‘rnatilgan tunnelni boshqa hisob sifatida qayta belgilay olmaydi. Asinxron chaqiriqlar atrofida bitta global foydalanuvchi nomi/parol tayinlash chaqiriq vaqti va hisob egaligini ziddiyatda qoldiradi.
Qayta foydalanish kerak bo‘lganda cheklangan mijozlar to‘plamini saqlang. Transportini yo‘q qilishdan oldin eski ishni to‘kib tashlang. Har bir so‘rov uchun yangi ishlovchi ulanish hovuzlarini isrof qiladi; barcha tarixiy hisoblarni abadiy saqlash ularni cheksiz o‘stiradi.