¿Hay alguna manera de obtener un System.Net.WebRequest
o System.Net.WebClient
para respetar el archivo hosts
o lmhosts
?System.Net.WebRequest no respeta el archivo hosts
Por ejemplo: en mi archivo de hosts que tengo:
10.0.0.1 www.bing.com
Cuando intento cargar Bing en un navegador (IE y FF) que no se carga como se esperaba.
Dns.GetHostAddresses("www.bing.com")[0]; // 10.0.0.1
WebRequest.Create("http://10.0.0.1").GetResponse(); // throws exception (expected)
WebRequest.Create("http://www.bing.com/").GetResponse(); // unexpectedly succeeds
mismo modo:
WebClient wc = new WebClient();
wc.DownloadString("http://www.bing.com"); //succeeds
Por qué sería System.Net.Dns
respetar el archivo hosts, pero System.Net.WebRequest
ignorarlo? ¿Qué debo cambiar para que la WebRequest respete el archivo de hosts?
Información adicional:
- Si desactivo IPv6 e IPv4 configurar mi servidor DNS a 127.0.0.1, funciona el código anterior (falla) como se esperaba. Sin embargo, si vuelvo a agregar mis servidores DNS normales como alternos, se reanuda el comportamiento inesperado.
- He reproducido esto en 3 cajas de Win7 y 2 de Vista. La única constante es la red de mi compañía.
- estoy usando .NET 3.5 SP1 y VS2008
Editar
sugerencia de Per @Richard Beier, probé System.Net
trazado. Con el seguimiento ON, el WebRequest
falla como debería. Sin embargo, tan pronto como gire el seguimiento OFF, el comportamiento vuelve al éxito inesperado. He reproducido esto en las mismas máquinas que antes tanto en el modo de depuración como en el de liberación.
Editar 2
Este resultó ser el proxy empresa que nos da problemas. Nuestra solución era un script de configuración de proxy personalizado para nuestras máquinas de prueba que tenían el punto "bing.com" en DIRECTO en lugar del proxy predeterminado.
supongo que está trabajando a través de un proxy en su red. ¿Qué hace tu navegador? –
Tanto IE como FF se comportan como se espera (intentando cargar desde el servidor indicado en el archivo hosts). – Nate
¿Has probado 'ipconfig/flushdns'? – Aren