web-services asp.net-3.5

web services - Cómo llamar un servicio web programáticamente en asp.net



web-services asp.net-3.5 (4)

¿Dónde intenta llamar al servicio y dónde se encuentra el archivo de servicio?

Si el servicio está ubicado en el mismo sitio. ¿Por qué no simplemente crear una instancia del nombre de clase del servicio? O simplemente crea una clase separada y usa la interfaz

¿Cómo llamar webservice programmatically en asp.net sin usar agregar referencia web? Mi URL de servicio web sigue cambiando. Por lo tanto, necesito capturar la URL en tiempo de ejecución y mostrar los resultados. Por favor aconséjame.


Puede cambiar la URL de una referencia web en tiempo de ejecución (siempre que la nueva dirección aloje un servicio con el mismo esquema que utilizó originalmente para crear la referencia):

MyWebService ms = new MyWebService(); ms.Url = "http://example.com/webservice.asmx"; ms.MyWebMethod();

Las referencias web son definitivamente el camino a seguir, mientras que las clases creadas por la referencia web suelen ser bastante pesadas, toda esa tipificación fuerte hace que valga la pena.


Puede especificar la URL de punto final como parte del constructor de su clase de proxy del lado del cliente.

Si no necesita especificarlo durante el tiempo de ejecución, también se puede configurar en su archivo web.config .


necesitas hacer los siguientes pasos.

PreReq: Antes que nada, conoce la URL del servicio web.

Solución: use wsdl.exe para crear una clase proxy y compilarla.

wsdl /out:myProxyClass.cs http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL

(hay otros modificadores disponibles para wsdl. Por ejemplo, para generar clase VB, debe agregar switch / idioma: VB)

Una vez que se genera su clase proxy, puede consumir fácilmente en código.

MyProxyClass objService = new MyProxyClass(); DateTime time = objService.GetServerTime(); //Suppose service has method getServerTime