Question

Est-il possible de détecter / réutiliser ces paramètres?

Comment?

L'exception que je reçois est Ceci est l'exception lors de la connexion à 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"
Était-ce utile?

La solution

HttpWebRequest va réellement utiliser les paramètres de proxy IE par défaut.

Si vous ne pas veulent les utiliser, vous devez remplacer spécifiquement le proprty .Proxy soit nulle (pas de proxy), ou les paramètres de proxy de votre choix.

 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();

Autres conseils

Je devenais une situation très similaire où le HttpWebRequest ne captait pas les détails de proxy correct par défaut et le réglage des UseDefaultCredentials ne fonctionnait pas non plus. Forcer les paramètres dans le code cependant travaillé un régal:

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;
}

et parce que celui-ci utilise les informations d'identification par défaut, il ne doit pas demander à l'utilisateur de leurs détails.

Notez que ceci est une copie de ma réponse affichée ici pour un problème similaire: Proxy d'authentification de base en C #: HTTP 407 erreur

Pour les personnes ayant des problèmes à obtenir ce pour jouer agréable avec serveur ISA, vous pouvez essayer de mettre en place proxy de la manière suivante:

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

Cela se produit par défaut, si WebRequest.Proxy est pas explicitement définie (par défaut, il est réglé sur WebRequest.DefaultWebProxy).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top