프록시 계정마다 별도의 .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);엔드포인트와 자격 증명은 애플리케이션 구성에서 가져옵니다. 두 번째 ID에는 다른 처리기를 만드세요. 첫 번째 처리기를 공유하는 또 다른 HttpClient은 그 정책도 공유합니다.
사용자 지정 ICredentials 공급자는 나중 챌린지에 응답할 수 있지만, 이미 설정된 터널을 다른 계정으로 다시 표시할 수는 없습니다. 비동기 호출 주변에서 하나의 전역 사용자 이름/암호를 할당하면 챌린지 시점과 계정 소유권이 충돌합니다.
재사용이 필요할 때는 클라이언트를 제한된 수로 유지하세요. 전송을 폐기하기 전에 이전 작업을 비우세요. 요청마다 새 처리기를 만들면 연결 풀이 낭비되고, 모든 과거 계정을 영원히 유지하면 한도 없이 늘어납니다.