Յուրաքանչյուր proxy հաշվի համար պահեք առանձին .NET handler
Ստեղծեք առանձին handler-ներ միաժամանակյա հաշիվների համար՝ փոխարենը չփոխարինելով WebProxy.Credentials-ը արդեն հարցումներ սպասարկող տրանսպորտում։
Տրանսպորտը կարող է պահել proxy-ի հավատարմագրերի մատակարարի այն օբյեկտը, որն ընտրվել է դրա pool-ի կառավարիչը ստեղծելիս։ WebProxy.Credentials-ը դրանից հետո փոխարինելը հաշվի փոխարկման վստահելի գործողություն չէ։
Ստեղծեք երթուղին և հաշիվը միասին՝ նախքան client-ը օգտագործելը.
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);Վերջնակետը և հավատարմագրերը գալիս են հավելվածի կարգավորումներից։ Երկրորդ ինքնության համար ստեղծեք մեկ այլ handler. առաջին handler-ը կիսող մեկ այլ HttpClient կիսում է նաև դրա քաղաքականությունը։
Հատուկ ICredentials մատակարարը կարող է պատասխանել ավելի ուշ մարտահրավերներին, բայց չի կարող հաստատված թունելը վերապիտակավորել որպես այլ հաշիվ։ Ասինխրոն կանչերի շուրջ մեկ գլոբալ օգտանուն/գաղտնաբառ նշանակելը մարտահրավերի ժամանակը և հաշվի սեփականությունը թողնում է հակասության մեջ։
Երբ վերօգտագործում է անհրաժեշտ, պահեք սահմանափակ client-ների հավաքածու։ Չորացրեք հին աշխատանքը նախքան դրա տրանսպորտը հեռացնելը։ Յուրաքանչյուր հարցման համար նոր handler-ը վատնում է միացումների pool-երը. բոլոր պատմական հաշիվները հավերժ պահելը դրանք աճեցնում է առանց սահմանի։