Estoy usando .NET WebRequest mientras cambio mi archivo HOSTS. Estoy observando que System.Net no respeta esos cambios, ¿cómo puedo hacerlo?¿Cómo borro el caché de DNS del cliente System.Net?
Tengo una cantidad de servidores con equilibrio de carga detrás de un único nombre de host, digamos 'ejemplo.com'. Quiero apuntar a varios de ellos de forma individual, por lo que mi programa se difícil que el código dirección IP específica de la máquina en mis archivo HOSTS antes de enviar una solicitud a example.com:
163.56.0.34 example.com
Para el primer servidor y la primera solicitud, esto funciona bien Entonces mi programa cambia el archivo HOSTS otra vez:
163.56.0.48 example.com
Y creo una nueva HttpWebRequest. Cuando envío este, puedo observar en NETMON que va a la primera dirección IP (163.56.0.34) en lugar de a la segunda espera.
con puntos de parada y trazas de depuración, He verificado que el valor correcto no se escriben en el archivo hosts cada vez. Cuando intento acceder a example.com desde un navegador u otro programa, respeta el archivo HOSTS y accede a la segunda dirección IP.
Uso de NETMON He verificado que las solicitudes van directamente a la dirección IP que se muestra; no hay un proxy HTTP.
Ya que todo lo demás está cumpliendo el archivo HOSTS modificados, tengo la fuerte sospecha de que la infraestructura System.Net ha almacenado en caché la asociación anfitriona-IP de DNS para example.com. Sin embargo, no puedo encontrar ninguna referencia a este almacenamiento en caché, y no tengo forma de enjuagarlo o apagarlo.
daría la bienvenida a las instrucciones para hacer frente a la caché, sugerencias para qué otra cosa podría ser la causa de estos síntomas u otros pasos de diagnóstico propuestas que podrían ser útiles.
Establecer KeepAlive en falso dará como resultado un protocolo de enlace TCP para cada solicitud. Puede alcanzar un término medio administrando el ServicePoint.ConnectionLeaseTimeout para que pueda reutilizar algunas conexiones, mientras sigue revisando los DNS para ver posibles cambios al reconectarse. – ScottS