Para unha aplicación .NET Framework, rexistre o módulo de proxy baixo configuration/system.net/defaultProxy:

<defaultProxy>
  <module type="Company.Network.RoutingProxy, Company.Network" />
</defaultProxy>

O primeiro nome é o tipo e o segundo a súa identidade de ensamblado, non unha ruta de DLL. O ensamblado e as dependencias deben cargarse segundo as regras normais da aplicación.

Comprobe dúas portas. Primeiro, o runtime debe construír un tipo público que implemente IWebProxy mediante un construtor sen parámetros. Conserve as excepcións internas dos fallos de carga ou construción; preceden calquera conexión TCP de proxy. Para unha versión de escritorio, confirme que o rexistro chegou á configuración despregada do executable. Con ClickOnce, compare o .exe.config compilado, publicado e instalado. O App.config dunha biblioteca de clases normalmente non configura o seu proceso anfitrión.

Segundo, a solicitude debe usar ese valor predeterminado. Unha asignación explícita de proxy pode substituílo, e outra pila HTTP pode non ler este modelo de configuración. Dentro do módulo, GetProxy e IsBypassed necesitan decisións coherentes, cun URI de proxy absoluto que use o esquema e o port correctos.

Faga coherente tamén o comportamento das credenciais. Un getter que fabrica unha conta codificada e ignora o seu setter pode anular a configuración posterior mesmo despois de que a carga teña éxito.

Este é un mecanismo de mantemento para .NET Framework. Use a configuración de proxy compatible co cliente de rede no .NET actual en lugar de esperar que este rexistro herdado system.net goberne cada HttpClient.

Artigos relacionados