agregar una referencia de servicio web desde detrás de un servidor proxy

Estoy usando vs2010. En una aplicación de consola simple, trato de agregar una referencia de servicio a http://***/service1.asmx , antiguo servicio asmx. Mi computadora está detrás de un servidor proxy, así que recibo un error:

“El servidor remoto devolvió una respuesta inesperada: (407) se requiere autenticación de proxy”.

Cuando estoy usando la herramienta wsdl, no puedo definir el número de puerto del servidor proxy y recibo el mensaje de que el servidor, por ejemplo, 10.0.0.3:80, no respondió, pero debo especificar el puerto 8080 y no sé cómo. ¿Cómo podría crear una referencia?

Eche un vistazo a los enlaces a continuación para especificar la dirección proxy y el puerto del servidor al agregar una referencia web.

http://msdn.microsoft.com/en-us/library/bb628649.aspx

http://msdn.microsoft.com/en-us/library/03seed2h.aspx

Para agregar una referencia a un asmx

  1. Haga clic derecho en la aplicación de la consola y seleccione agregar referencia de servicio.

  2. Haga clic en el botón avanzado e ingrese la dirección ASMX en la barra de direcciones. Haga clic en el botón verde al lado de él para descubrir el asmx.

  3. Dale un nombre y haz clic en agregar ref.

Actualización: intente actualizar la configuración web / configuración de la aplicación y agregar;

      

Pasé casi 50 horas encontrando el problema, no pude encontrar en ninguna parte de la web esta solución simple.

Bajo la sección “configuración” en Web.config agregue esto:

     

¡Entonces funciona como un amuleto!

También puedes hacerlo desde el código que está detrás:

 serviceConnection = new WebService1(); serviceConnection.Proxy = System.Net.HttpWebRequest.GetSystemWebProxy(); serviceConnection.Proxy.Credentials = CredentialCache.DefaultCredentials; 

Funciona bonito !!.

Si necesita consumir desde la ubicación HTTPS agregue esta configuración:

  

Añadiendo la referencia:

Asegúrese de que está agregando la referencia de esta manera. Debe hacer clic en ” Add Service Reference “, ir a ” Advanced ” y finalmente hacer clic en ” Add Web Reference “.

Luego agregue lo siguiente:

 http://***/service1.asmx 

Para el port 8080 se utiliza:

 http://***:8080/service1.asmx 

Configure el proxy para su servicio web:

Para asegurarse de que el servicio web está utilizando su Internet Explorer proxy , puede agregar lo siguiente a su objeto de Web Service en su aplicación cliente.

 webService1.Proxy = WebRequest.GetSystemWebProxy(); 

También puede configurar el Proxy manualmente:

 webService1.Proxy = new WebProxy("hxxp://my-proxy-settings:8080/"); 

NTLM

Si usa NTLM, probablemente necesitará asegurarse de que también use las Credenciales predeterminadas en el proyecto de su cliente. Puede hacerlo fácilmente pasándolo al crear el servicio web utilizando UseDefaultCredentials establecido en true .

 public webService _webService = new webService() { UseDefaultCredentials = true }; 

También puede deshabilitar la autenticación NTLM para su proyecto de servicio web. Puede hacer esto en Project Properties -> Web . Si desactiva esta opción, debería poder agregar el servicio web sin tener que autenticarse.

http://msdn.microsoft.com/en-us/library/aa378749.aspx

No puedo crear automáticamente una referencia de servicio web usando vs2010. Decido usar la herramienta wsdl.exe y, en el parámetro denominado / parameters, pasar el archivo xml con las credenciales del servidor proxy

wsdl.exe http: // service uri / service1.asmx /parameters:c:\temp\wsdlparameters.xml

WSDL.exe genera un archivo Service1.cs (predeterminado). Agrego este archivo a mi proyecto y lo uso así:

 WebProxy wp = new WebProxy(@"YourProxyServer",ProxyPort); wp.Credentials = new NetworkCredential("USERNAME", "PASSWORD"); Service1 service1 = new Service1(); service1.Proxy = wp; service1."YourServiceMethod"();