2010-05-08 37 views
9

Abrir una página pública desde el navegador funciona bien.WebClient: el servidor remoto devolvió un error: (403) Prohibido

Descargar la misma página usando WebClient throws - (403) Prohibido.

¿Qué está pasando aquí?

Aquí está rápida ejemplo copiar/pegar (utilizado en la aplicación de consola) a la página específica en la web:

try 
{ 
    WebClient webClient = new WebClient(); 
    string content = webClient.DownloadString("http://he.wikisource.org/wiki/%D7%A9%D7%95%D7%9C%D7%97%D7%9F_%D7%A2%D7%A8%D7%95%D7%9A_%D7%90%D7%95%D7%A8%D7%97_%D7%97%D7%99%D7%99%D7%9D_%D7%90_%D7%90"); 
} 
catch (Exception ex) 
{ 
    throw; 
} 
+0

¿con qué frecuencia llamas a esta url? podrías ser estrangulado – Nix

+0

No mucho, creo, algunas veces de los navegadores antes de intentar con webclient. He estado descargando otras páginas del mismo sitio mucho más ahora y funcionan bien todo el tiempo. ¿Entonces parece que esta página solo arroja errores? – dzolnjan

+1

La página puede estar mirando el encabezado del agente de usuario y rebotando porque no proporciona uno. –

Respuesta

38

acabo probado con Fiddler corriendo a ver la respuesta y devuelve el siguiente aviso con el código de estado.

Scripts should use an informative User-Agent string with contact information, or they may be IP-blocked without notice.

Esto funciona.

WebClient webClient = new WebClient(); 
    webClient.Headers.Add("user-agent", "Only a test!"); 

    string content = webClient.DownloadString("http://he.wikisource.org/wiki/%D7%A9%D7%95%D7%9C%D7%97%D7%9F_%D7%A2%D7%A8%D7%95%D7%9A_%D7%90%D7%95%D7%A8%D7%97_%D7%97%D7%99%D7%99%D7%9D_%D7%90_%D7%90"); 
+0

Sí que funciona, gracias. – dzolnjan

+1

Gracias por esto, no lo resolvió, pero me pusiste en una pista. Como advertencia para los que siguen, primero compruebe su propia implementación de seguridad. Había olvidado otorgarle a mi usuario los derechos para realizar descargas y estaba recibiendo (correctamente) un mensaje 403. Nada que ver con el servidor IIS, el cliente, el agente de usuario ni nada. –

+0

@TheSenator gracias, en mi caso fueron las restricciones de la dirección IP de IIS. – joym8

Cuestiones relacionadas