C# - webclient-und proxy-server
Bin ich über eine web-client-Klasse in meinem source-code zum herunterladen einer Zeichenkette mit http.
Diese war in Ordnung arbeiten. Jedoch die clients in der Firma alle miteinander verbunden sind, nun zu einem proxy-server. Und das problem begann.
Wenn ich getestet habe, meine Anwendung, die ich glaube nicht, dass es passieren kann durch die proxy-server, als die Ausnahme, die immer wieder geworfen wird "keine Antwort von xxx.xxx.xxx.xxx, das ist der proxy-server IP-Adresse.
Allerdings kann ich noch navigieren Sie zu der web-site-URL und zeigt die Zeichenfolge korrekt in den browser, wenn die Verbindung über einen proxy-server, aber nicht wenn ich mit meinem web-client.
Ist es etwas in der web-client, ich habe zu konfigurieren, um mir zu erlauben, den Zugriff auf die url hinter einem proxy-server?
using (WebClient wc = new WebClient())
{
string strURL = "http://xxxxxxxxxxxxxxxxxxxxxxxx";
//Download only when the webclient is not busy.
if (!wc.IsBusy)
{
string rtn_msg = string.Empty;
try
{
rtn_msg = wc.DownloadString(new Uri(strURL));
return rtn_msg;
}
catch (WebException ex)
{
Console.Write(ex.Message);
return false;
}
catch (Exception ex)
{
Console.Write(ex.Message);
return false;
}
}
else
{
System.Windows.Forms.MessageBox.Show("Busy please try again");
return false;
}
}
InformationsquelleAutor ant2009 | 2009-05-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meine Lösung:
Mehr deutlicher als Orphid; mit dem obigen code (was vollkommen legitim ist) vergessen Sie nicht, rufen
.Dispose
im webclient! Auch, WebProxy hat eine Konstruktor-überladung, nimmt die port-Nummer, die als zweites argumentInformationsquelleAutor Jonathan
Wenn Sie brauchen, um die Authentifizierung gegenüber dem proxy, müssen Sie
UseDefaultCredentials
zufalse
, und legen Sie die proxy -Credentials
.Wenn alles, was Sie brauchen, ist ein einfacher proxy, überspringen Sie die meisten der Linien, die oben aber. Alles, was Sie brauchen, ist:
InformationsquelleAutor Cullub
Habe ich hatte das gleiche Problem aber mit einen webclient für den Download einer Datei aus dem internet mit einer Winform-Anwendung die Lösung war das hinzufügen in die app.config:
Die gleiche Lösung wird für die Arbeit ein asp.net app einfügen die gleichen Zeilen im web.config.
Hoffe, es wird helfen.
InformationsquelleAutor Davide
Antwort vorgeschlagen von Jonathan ist richtig, aber erfordert, dass Sie geben Sie die proxy-Anmeldeinformationen und die url in den code. In der Regel ist es besser, zu erlauben, die Verwendung der Anmeldeinformationen als setup im system standardmäßig (in der Regel verwenden Benutzer konfigurieren der LAN-Einstellungen sowieso, falls Sie einen proxy verwenden)...
Den unten Antwort wurde von Davide in früheren Antwort, aber das erfordert das ändern der app.config-Dateien. Diese Lösung ist wohl eher nützlich, da es nicht die gleiche Sache IM CODE.
Damit Sie die Anwendung verwenden Sie die Standard proxy-Einstellungen wie in dem system des Benutzers, kann man den folgenden code verwenden:
Dadurch wird der Anwendungs-code zu verwenden, der proxy (mit angemeldeten Anmeldeinformationen und Standard-proxy-url-Einstellungen)... Keine Kopfschmerzen! 🙂
Hoffe, das hilft, künftige Betrachter dieser Seite, um zu lösen Ihr problem!
InformationsquelleAutor Bharat Mallapur
Müssen Sie zum konfigurieren der proxy in der WebClient-Objekt.
Sehen den WebClient.Proxy-Eigenschaft:
http://msdn.microsoft.com/en-us/library/system.net.webclient.proxy(VS.80).aspx
InformationsquelleAutor Winston Smith
InformationsquelleAutor Ayhan Sarıtaş