Frage

Ist es möglich, diese Einstellungen zu erkennen/wiederzuverwenden?

Wie ?

Die Ausnahme, die ich bekomme, ist, dass dies die Ausnahme ist, wenn sie eine Verbindung zu herstellen http://www.google.com

System.Net.WebException: Unable to connect to the remote server --->
  System.Net.Sockets.SocketException: A connection attempt failed because the
  connected party did not properly respond after a period of time, or established
  connection failed because connected host has failed to respond 66.102.1.99:80

  at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, 
     SocketAddress socketAddress)
  at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
  at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure,
     Socket s4, Socket s6, Socket& socket, IPAddress& address,
     ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout,
     Exception& exception)
  --- End of inner exception stack trace ---
  at System.Net.HttpWebRequest.GetResponse()
  at mvcTest.MvcApplication.Application_Start() in
     C:\\home\\test\\Application1\\Application1\\Program.cs:line 33"
War es hilfreich?

Lösung

HttpWebRequest verwendet die IE -Proxy -Einstellungen standardmäßig.

Wenn du nicht Wenn Sie sie verwenden möchten, müssen Sie die .Proxy -Eigenschaft entweder auf Null (kein Proxy) oder die Proxy -Einstellungen Ihrer Wahl überschreiben.

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://news.bbc.co.uk");
 //request.Proxy = null; // uncomment this to bypass the default (IE) proxy settings
 HttpWebResponse response = (HttpWebResponse)request.GetResponse();

 Console.WriteLine("Done - press return");
 Console.ReadLine();

Andere Tipps

Ich bekam eine sehr ähnliche Situation, in der die HTTPWebRequest nicht standardmäßig die richtigen Proxy -Details aufnahm und die Usedefaultcredentials auch nicht funktioniert hat. Das Erzwingen der Einstellungen in Code wirkte jedoch zu Leckereien:

IWebProxy proxy = myWebRequest.Proxy;
if (proxy != null) {
    string proxyuri = proxy.GetProxy(myWebRequest.RequestUri).ToString;
    myWebRequest.UseDefaultCredentials = true;
    myWebRequest.Proxy = new WebProxy(proxyuri, false);
    myWebRequest.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
}

Und da dies die Standardanmeldeinformationen verwendet, sollte der Benutzer nicht nach seinen Details gefragt werden.

Beachten Sie, dass dies ein Duplikat meiner Antwort ist, das hier für ein sehr ähnliches Problem gepostet wurde: Proxy Basic -Authentifizierung in C#: HTTP 407 Fehler

Für Leute, die Probleme haben, dies mit ISA Server gut zu spielen, versuchen Sie möglicherweise, Proxy auf folgende Weise einzurichten:

IWebProxy webProxy = WebRequest.DefaultWebProxy;
webProxy.Credentials = CredentialCache.DefaultNetworkCredentials;
myRequest.Proxy = webProxy;

Dies geschieht standardmäßig, wenn WebRequest.Proxy nicht explizit festgelegt wird (standardmäßig ist es auf festgelegt WebRequest.DefaultWebProxy).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top