Pregunta

Estamos desarrollando una aplicación winform .NET 2.0.La aplicación necesita acceder Servicios web.Sin embargo, nos encontramos con problemas con los usuarios detrás de los servidores proxy.

Aplicaciones populares de copia de seguridad de Windows (piense mozy) proporcionan una ventana de diálogo moderadamente compleja dedicada a la configuración del proxy.Sin embargo, volver a implementar otra lógica de manejo de proxy y una GUI me parece una total pérdida de tiempo.

¿Cuáles son las mejores formas de lidiar con el proxy con aplicaciones cliente .NET?

Más específicamente, tenemos un caso en el que el usuario ha registrado su configuración de proxy en Internet Explorer (incluido el nombre de usuario y la contraseña), por lo que el comportamiento de proxy predeterminado de .NET debería funcionar.Sin embargo, todavía se le solicita al usuario su nombre de usuario y contraseña cuando inicia IE (ambos campos están precompletados, el usuario solo necesita hacer clic en Aceptar), y nuestra aplicación winform aún falla al manejar el proxy.

¿Qué debemos hacer para garantizar que al usuario no se le solicite su nombre de usuario y contraseña al iniciar IE?

¿Fue útil?

Solución

Pon esto en el archivo de configuración de tu aplicación:

<configuration>
  <system.net>
    <defaultProxy>
      <proxy autoDetect="true" />
    </defaultProxy>
  </system.net>
</configuration>

y su aplicación utilizará la configuración de proxy de IE.Si puede ver su servicio web en IE usando el servidor proxy, debería poder "verlo" desde su aplicación.

Otros consejos

Utilice las clases WebProxy y WebRequest.Envuélvalo en su propia biblioteca solo por una vez y úselo en cualquier lugar donde desee trabajar con proxy.

Considere el uso de .NET Proxy web clase.Tiene soporte para seleccionar automáticamente la configuración predeterminada correcta.

La forma más sencilla es utilizar la configuración de proxy de IE Explorer.

Si abre IE, hace clic en Aceptar en el cuadro de diálogo de proxy y luego (dejando IE abierto) intenta conectarse con su aplicación winforms, ¿funciona su aplicación?¿O su aplicación no logra manejar el proxy pase lo que pase?

¿Sus clientes están experimentando problemas de proxy todos en la misma red (es decir,¿Están todos usando el mismo servidor proxy)?

Creo que el autor de la pregunta entiende que tiene que usar WebProxy si el usuario requiere un proxy, la pregunta es "¿cómo obtengo la configuración del proxy de IE para no tener que pedirle al usuario que la escriba también en mi aplicación?"

System.Net.WebProxy.GetDefaultProxy está obsoleto, debe usar System.Net.WebRequest.DefaultWebProxy.Hay un artículo que lo describe en http://msdn.microsoft.com/en-ca/magazine/cc300743.aspx.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top