Share via


Crear el proxy del servicio web

Un cliente y un servicio web pueden comunicarse utilizando mensajes SOAP, que encapsulan los parámetros de entrada y salida como XML. Una clase de proxy asigna los parámetros a los elementos XML y, a continuación, envía los mensajes SOAP a través de una red. De esta manera, la clase de proxy le evita tener que comunicarse con el servicio web en el nivel SOAP y le permite invocar a los métodos de servicio web en cualquier entorno de desarrollo que admita SOAP y proxys de servicio web.

Hay dos maneras de agregar una clase de proxy a su proyecto de desarrollo utilizando Microsoft .NET Framework: con la herramienta WSDL en .NET Framework y agregando una referencia web en Microsoft Visual Studio. En las secciones siguientes se explica esta cuestión con mayor detalle.

Agregar el proxy mediante la herramienta WSDL

.NET Framework SDK incluye la herramienta Lenguaje de descripción de servicios web (Wsdl.exe), que permite generar un proxy de servicio web para usarse en el entorno de desarrollo de .NET Framework. La manera más común de crear un proxy de cliente en los lenguajes que admiten servicios web (actualmente C# y Microsoft Visual Basic ) es utilizar la herramienta WSDL.

Para agregar una clase de proxy a un proyecto utilizando Wsdl.exe

  1. Desde un símbolo del sistema, utilice Wsdl.exe para crear una clase de proxy, especificando, como mínimo, la dirección URL del servicio web del servidor de informes.

    Por ejemplo, la siguiente instrucción del símbolo del sistema especifica una dirección URL para el extremo de administración del servicio web del servidor de informes:

    wsdl /language:CS /n:"Microsoft.SqlServer.ReportingServices2010" http://<Server Name>/reportserver/reportservice2010.asmx?wsdl
    

    La herramienta WSDL acepta varios argumentos de símbolo del sistema para generar un proxy. El ejemplo anterior especifica el lenguaje C# y un espacio de nombres sugerido para utilizar en el proxy (para evitar el conflicto de nombres si se usa más de un extremo de servicios web), y genera un archivo de C# denominado ReportingService2010.cs. Si el ejemplo hubiera especificado Visual Basic, el ejemplo habría generado un archivo de proxy con el nombre ReportingService2010.vb. Este archivo se crea en el directorio desde el que se ejecuta el comando.

  2. Compile la clase de proxy en un archivo de ensamblado (con la extensión .dll) y haga referencia a él en el proyecto o agregue la clase como un elemento de proyecto.

    Nota

    Al agregar manualmente una clase de proxy al proyecto, tiene que agregar una referencia al archivo System.Web.Services.dll. Si agrega el proxy utilizando una referencia web en Visual Studio .NET, la referencia se crea automáticamente. Para obtener más información, vea "Agregar el proxy usando una referencia web en Visual Studio" más adelante en este tema.

    Después de agregar la clase de proxy como un elemento al proyecto, el archivo asociado aparece en el Explorador de soluciones.

  3. Para llamar al servicio mediante programación, cree una instancia de la clase de proxy.

    El ejemplo de código siguiente muestra la sintaxis para crear una instancia de la clase de proxy ReportingService2010 en un proyecto:

Dim service As New ReportingService2010()
ReportingService2010 service = new ReportingService2010();

Para obtener más información sobre la herramienta Wsdl.exe, incluida su sintaxis completa, vea "Herramienta Lenguaje de descripción de servicios web" en la documentación de .NET Framework SDK. Para obtener una explicación completa de los proxys del servicio web, vea "Crear un proxy de servicio web XML" en la documentación de .NET Framework SDK.

Agregar el proxy usando una referencia web en Visual Studio

Una referencia web permite a un proyecto usar uno o más servicios web. Visual Studio permite a los usuarios agregar referencias de servicio web a los proyectos siguiendo unos pasos simples.

Para agregar una referencia web a un proyecto

  1. En el Explorador de soluciones, seleccione el proyecto que consumirá el servicio web.

  2. En el menú Proyecto, haga clic en Agregar referencia web.

    Se abrirá el cuadro de diálogo Agregar referencia web.

  3. En el campo Dirección URL, escriba la ruta de acceso completa al servicio web del servidor de informes.

    Una dirección URL simplificada para el extremo de ejecución de informes del servicio web del servidor de informes podría ser similar a la siguiente:

    http://<Server Name>/reportserver/reportexecution2005.asmx
    

    La dirección URL contiene el dominio en el que se implementa el servicio web del servidor de informes, el nombre de la carpeta que contiene el servicio y el nombre del archivo de detección para el servicio. Para obtener una descripción completa de los diferentes elementos de dirección URL, vea Acceso a la API SOAP.

    Una descripción de los métodos y propiedades proporcionada por el servicio web aparece en el panel Explorador a la izquierda.

    Nota

    Para obtener más información sobre los elementos asociados al servicio web del servidor de informes, vea Métodos de servicio web del servidor de informes.

  4. Compruebe que su proyecto puede utilizar el servicio web del servidor de informes y que tiene el permiso adecuado para tener acceso al servidor de informes.

  5. En el campo Nombre de referencia web escriba el nombre que vaya a utilizar en el código para obtener acceso mediante programación al servicio web del servidor de informes.

  6. Seleccione el botón Agregar referencia para crear una referencia en la aplicación para el servicio web.

    La nueva referencia aparece en el Explorador de soluciones bajo el nodo Referencias web para el proyecto activo, denominado tal y como se especifica en el campo Nombre de referencia web.

  7. En el Explorador de soluciones, expanda la carpeta Referencias web para anotar el espacio de nombres de las clases de referencias web que están disponibles para los elementos del proyecto.

    Después de agregar una referencia web al proyecto, los archivos asociados se muestran en una carpeta dentro de la carpeta Referencias web del Explorador de soluciones.

Después de agregar la referencia web, utilice la sintaxis siguiente para crear una instancia de la clase de proxy:

Dim rs As New myNamespace.myReferenceName.ReportExecutionService()
rs.Url = "http://<Server Name>/reportserver/reportexecution2005.asmx?wsdl"
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
myNamespace.myReferenceName.ReportExecutionService rs = new myNamespace.myReferenceName.ReportExecutionService();
rs.Url = "http://<Server Name>/reportserver/reportexecution2005.asmx?wsdl"
rs.Credentials = System.Net.CredentialCache.DefaultCredentials

También puede agregar una directiva using (Import en Visual Basic) a la referencia del servicio web del servidor de informes. Si utiliza esta directiva, no es necesario utilizar nombres completos para los tipos en el espacio de nombres. En ello, agregue el siguiente código al archivo:

Import myNamespace.myReferenceName
using myNamespace.myReferenceName;