30

Ich versuche einen WebClient/HttpWebRequest zu verwenden, um einige Daten von einem Server herunterzuladen. Ich verwende den folgenden Code, um dies zu tun:Der Server hat eine Protokollverletzung begangen. Section = ResponseHeader Detail = Auf CR muss LF folgen, in WinForms?

WebClient client = new WebClient(); 
client.Credentials = new NetworkCredential("admin", "password"); 
Stream datastream = client.OpenRead("http://routerlogin.com/cgi-bin/CF_logs.html"); 
StreamReader reader = new StreamReader(datastream); 

Der Server ist meine Seite ist in meinem Router-Konfiguration. Es funktioniert gut von einem Browser, aber wenn heruntergeladen mit meinem Code es wirft eine WebException mit der Nachricht

Der Server hat eine Protokollverletzung begangen. Section = ResponseHeader Detail = Auf CR muss LF in WinForms folgen.

ich eine Lösung gefunden haben, ein verwenden würden, wenn sie ASP.net verwendet haben, das Hinzufügen der folgenden web.config:

<configuration> 
    <system.net> 
     <settings> 
      <httpWebRequest useUnsafeHeaderParsing="true" /> 
     </settings> 
    </system.net> 
</configuration> 

Allerdings bin ich eine WinForms-Anwendung macht dies so wird nicht arbeite für mich. Welche Alternativen gibt es, um dieses Problem zu beheben?

+0

sollte dies für alle Arten von Anwendungen funktionieren, nicht nur asp.net – shriek

+0

wo sollte ich es hinzufügen? Es gibt kein Web oder app.config. – msbg

+0

Seltsame Sache, die ich erlebe, ist, dass dieser Fehler auf einem PC mit unserem Netzwerk kommt, aber andere PC mit der gleichen Anwendung funktioniert gut. Wenn ich oben Erwähnung Eintrag hinzufügen, dass PC auch beginnt gut zu funktionieren. Frage ist, warum dieses Problem nur auf einem einzigen PC ist (die eine neue Installation haben) –

Antwort

15

Zuerst eine app.config-Datei hinzuzufügen, ist so einfach wie jede andere Datei hinzufügen, How to: Add Application Configuration Files to C# Projects

Dann haben Sie gerade oben zu diesem neuen app.config, dass Code-Snippet hinzuzufügen.

Eine weitere Möglichkeit, diese Eigenschaft über Code festzulegen, ohne dass eine app.config benötigt wird, wird here oder here angezeigt.