Cambiar un controlador de proxy de .NET HttpClient ya usado puede fallar
Mantenga estable el enrutamiento de proxy de .NET durante solicitudes simultáneas en lugar de modificar propiedades del controlador después de usarlo.
Configure el enrutamiento del controlador de .NET antes del primer uso. Establecer Proxy o UseProxy después de que comiencen las solicitudes puede lanzar InvalidOperationException.
| Cambio | Lo que no proporciona |
|---|---|
| Reescribir una propiedad de un controlador usado | Un conmutador de ruta local a la solicitud compatible |
Mutar el WebProxy.Address asignado | Selección atómica para solicitudes simultáneas o movimiento de conexiones agrupadas |
Colocar un valor actual global dentro de IWebProxy | Una política de concurrencia definida solo por mover el estado |
Para un conjunto acotado de rutas, mantenga clientes/grupos de controladores reutilizables asociados a esas políticas y seleccione el cliente antes de enviar. Un IWebProxy personalizado puede tomar decisiones deliberadas y seguras para la concurrencia, pero un valor compartido mutable sigue siendo ambiguo.
Limite los clientes de ruta y el trabajo en curso por destinos, duración, vida útil de la conexión y límites del sistema operativo. Más rutas añaden grupos/sockets, por lo que el número de proxies de una prueba de referencia no es una garantía de capacidad.
Un reintento a través de otro proxy es otro intento acotado con su propio cliente/resultado. Para los envíos, conserve la posibilidad de que la primera solicitud se haya procesado antes de que desapareciera su respuesta.