Zadržite zaseban .NET handler za svaki proxy račun
Izradite zasebne handlere za istodobne račune umjesto zamjene WebProxy.Credentials na transportu koji već poslužuje zahtjeve.
Transport može zadržati objekt pružatelja proxy vjerodajnica odabran pri stvaranju njegova upravitelja zbirke. Zamjena WebProxy.Credentials nakon toga nije pouzdana operacija prebacivanja računa.
Stvorite rutu i račun zajedno prije korištenja klijenta:
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);Krajnja točka i vjerodajnice dolaze iz konfiguracije aplikacije. Izradite drugi handler za drugi identitet; drugi HttpClient koji dijeli prvi handler dijeli i njegovu politiku.
Prilagođeni pružatelj ICredentials može odgovoriti na kasnije izazove, ali ne može preimenovati uspostavljeni tunel u drugi račun. Dodjeljivanje jednog globalnog korisničkog imena/lozinke oko asinkronih poziva ostavlja vrijeme izazova i vlasništvo računa u sukobu.
Zadržite ograničen skup klijenata kada je potrebno ponovno korištenje. Ispraznite stari posao prije odlaganja njegova transporta. Novi handler po zahtjevu rasipa skupove veza; čuvanje svakog povijesnog računa zauvijek ih raste bez granice.