Pro každý proxy účet si ponechte samostatný .NET handler
Vytvářejte samostatné handlery pro souběžné účty místo nahrazování WebProxy.Credentials na transportu, který už obsluhuje požadavky.
Transport si může ponechat objekt poskytovatele proxy přihlašovacích údajů zvolený při vytvoření jeho správce fondu. Nahrazení WebProxy.Credentials poté není spolehlivá operace přepnutí účtu.
Vytvořte trasu a účet společně, než začnete klienta používat:
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);Koncový bod a přihlašovací údaje pocházejí z konfigurace aplikace. Pro druhou identitu vytvořte další handler; jiný HttpClient, který sdílí první handler, sdílí i jeho zásady.
Vlastní poskytovatel ICredentials může odpovídat na pozdější výzvy, ale nemůže přeznačit zavedený tunel na jiný účet. Přiřazení jednoho globálního uživatelského jména/hesla kolem asynchronních volání nechává časování výzvy a vlastnictví účtu v konfliktu.
Když je potřeba opakované použití, udržujte omezenou sadu klientů. Než zlikvidujete transport, vyprázdněte starou práci. Nový handler na každý požadavek plýtvá fondy připojení; uchovávání všech historických účtů navždy je nechává růst bez omezení.