.NET Framework에서 사용자 지정 프록시 모듈 로드
defaultProxy 모듈이 효과가 없는 것처럼 보일 때 형식 로드, 실행 파일 구성 및 요청 재정의를 확인합니다.
.NET Framework 애플리케이션에서는 프록시 모듈을 configuration/system.net/defaultProxy 아래에 등록합니다:
<defaultProxy>
<module type="Company.Network.RoutingProxy, Company.Network" />
</defaultProxy>첫 번째 이름은 형식이고 두 번째는 해당 어셈블리 ID이며 DLL 경로가 아닙니다. 어셈블리와 종속성은 애플리케이션의 일반 규칙에 따라 로드되어야 합니다.
두 개의 게이트를 확인합니다. 먼저 런타임은 매개 변수 없는 생성자를 통해 IWebProxy를 구현하는 공용 형식을 생성해야 합니다. 로드 또는 생성 실패의 내부 예외를 유지하세요. 해당 예외는 모든 프록시 TCP 연결보다 먼저 발생합니다. 데스크톱 릴리스의 경우 등록이 실행 파일의 배포된 구성에 도달했는지 확인합니다. ClickOnce에서는 빌드, 게시 및 설치된 .exe.config를 비교합니다. 클래스 라이브러리의 App.config는 일반적으로 호스트 프로세스를 구성하지 않습니다.
둘째, 요청이 해당 기본값을 사용해야 합니다. 명시적 프록시 할당이 이를 대체할 수 있으며 다른 HTTP 스택은 이 구성 모델을 읽지 않을 수 있습니다. 모듈 내에서 GetProxy와 IsBypassed는 일관된 결정이 필요하며, 절대 프록시 URI는 올바른 체계와 포트를 사용해야 합니다.
자격 증명 동작도 일관되게 만드세요. 하드코딩된 계정을 만들면서 setter를 무시하는 getter는 로드가 성공한 후에도 이후 구성을 무력화할 수 있습니다.
이것은 .NET Framework을 위한 유지 관리 메커니즘입니다. 현재 .NET에서는 이 레거시 system.net 등록이 모든 HttpClient를 제어할 것이라고 기대하지 말고 네트워킹 클라이언트가 지원하는 프록시 구성을 사용하세요.