2010-05-08 15 views
9

Das Öffnen einer öffentlichen Seite im Browser funktioniert einwandfrei.WebClient - Der Remote-Server hat einen Fehler zurückgegeben: (403) Forbidden

Download der gleichen Seite mit WebClient-Würfe - (403) Forbidden.

Was ist hier los?

Hier ist schnelles Kopieren/Einfügen Beispiel (verwendet auf Konsolenanwendung) auf bestimmte Seite auf 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

Wie oft rufen Sie diese URL an? Du könntest gedrosselt werden. – Nix

+0

Nicht viel denke ich, einige Male von Browsern vor dem Versuch mit Webclient. Ich habe inzwischen viel mehr Seiten von derselben Seite heruntergeladen und sie funktionieren jedes Mal gut. Es sieht also so aus, als ob diese Seite nur Fehler wirft ?! – dzolnjan

+1

Die Seite kann sich die Kopfzeile des Benutzeragenten ansehen und Sie abprallen lassen, weil Sie keinen solchen bereitstellen. –

Antwort

38

Ich habe gerade versucht, es mit Fiddler laufen die Reaktion zu sehen und es gibt die folgende Mitteilung mit der Statuscode.

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

Dies funktioniert.

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

Ja, das funktioniert, danke. – dzolnjan

+1

Danke dafür - es hat es nicht für mich gelöst, aber du hast mich auf eine Spur gebracht. Als ein Wort der Warnung an diejenigen, die folgen, überprüfen Sie zuerst Ihre eigene Sicherheitsimplementierung. Ich hatte vergessen, meinem Benutzer die Rechte zu gewähren, Downloads durchzuführen und erhielt (richtig) eine 403 Nachricht. Nichts mit dem IIS-Server, dem Client, dem User-Agent oder irgendetwas zu tun. –

+0

@TheSenator danke, in meinem Fall war es IIS IP-Adresse Einschränkungen. – joym8

Verwandte Themen