Cómo Detectar/Usar configuración de proxy de IE en .net HttpWebRequest

Es posible detectar/reutilizar esos valores ?

Cómo ?

La excepción que voy es
Esta es la excepción, mientras que la conexión a 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"
  • Si usted está recibiendo una excepción, por favor enviar toda la cosa: ex.ToString().
  • Esto es más probable un problema con el cortafuegos. Simplemente no estás recibiendo una conexión.
  • Ok, he copiado el código en una nueva aplicación de consola, y funcionó a la derecha del palo que se ve como algo de autorización en el vs2008, construido en el servidor web alguna pista sobre qué/dónde fijar que en última instancia, el código que se necesita para la ejecución de recaptcha por lo que se tiene que ejecutar en el servicio de hosting
  • aaargh, siempre olvido el formato de los comentarios no se ocupa de CR !!! ………………..De todos modos, parece que hay algunos autorización/restricción en el iis sandbox…………………….alguna sugerencia ?
InformationsquelleAutor Kumar | 2009-07-20

4 Kommentare

  1. 25

    HttpWebRequest hecho utiliza la configuración de proxy de IE por defecto.

    Si no quiere hacer uso de ellos, específicamente lo que tiene que reemplazar el .Proxy proprty a null (sin proxy), o la configuración de proxy de libertad de elección.

     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();
    • no parece que estoy usando el recaptcha de control que utiliza el HTTPWebRequest y lanza una excepción
    • no se comportan como digo. Usted puede demostrar que esta utilizando el anterior fragmento de código y el uso de Fiddler. Véase la respuesta de un tema relacionado para ver cómo demostrar que este es el comportamiento por defecto: stackoverflow.com/questions/1112320/…
    • Una limitación es que la configuración del proxy predeterminado se leen desde el registro de inicio de la aplicación. Si desea volver a cargar porque han cambiado, debe indicar de forma explícita que el .Proxy de la propiedad.
    • Eric, ¿qué pasa si la configuración de IE incluir una secuencia de comandos? Consulte stackoverflow.com/questions/1160683/… si usted consigue una oportunidad.
  2. 7

    Yo estaba en una situación muy similar, donde el HttpWebRequest no estaba recogiendo la correcta detalles del proxy por defecto y la configuración de la UseDefaultCredentials no funciona tampoco. Obligando a los ajustes en el código, sin embargo trabajado tratar:

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

    y debido a que este utiliza las credenciales predeterminadas no debe preguntar al usuario para los detalles.

    Tenga en cuenta que este es un duplicado de mi respuesta publicada aquí para un problema similar: Proxy de Autenticación Básica en C#: HTTP 407 error

  3. 2

    Para las personas que tienen problemas con la obtención de este jugar bonito con ISA server, puede intentar configurar el proxy de la siguiente manera:

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

    Esto ocurre por defecto, si WebRequest.Proxy no se establece explícitamente (por defecto se establece en WebRequest.DefaultWebProxy).

    • no parece que como es lanzar una excepción podría ser una advertencia de que tal vez
    • no – ajuste de la WebRequest.Proxy a null omite todos los servidores proxy. Dejando «como es» que le permite recoger el proxy por defecto (no es nulo por defecto).
    • publicar el total de la excepción. @Rob: estás en lo correcto. Por defecto se establece en WebRequest.DefaultWebProxy.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea