Tutorial: Obtener acceso a un servicio web utilizando Visual Basic o Visual C#

Actualización: noviembre 2007

El siguiente tutorial describe el proceso de obtención de acceso a un servicio web desde una aplicación creada con Visual Basic o Visual C#.

Durante este tutorial, realizará las siguientes actividades:

  • Crear una aplicación cliente utilizando la plantilla de proyecto Aplicación Web ASP.NET.

  • Agregar una referencia web para un servicio web.

  • Escribir código para obtener acceso al servicio web.

  • Ejecutar la aplicación Web en modo de depuración.

  • Implementar la aplicación Web.

Para completar el tutorial, hay que disponer de lo siguiente:

  • Dado que el tutorial utiliza una aplicación web para tener acceso al servicio web, es preciso que disponga de un equipo que cumpla los requisitos para crear un proyecto de este tipo. También es necesario disponer de suficientes permisos para crear proyectos de servicios web en el equipo donde se encuentre el servidor web.

  • Un servicio web creado a partir de los siguientes tutoriales:

En este tutorial, podrá crear una aplicación web simple que obtiene acceso al servicio web TempConvert1, que es el nombre asignado al servicio web creado en Tutorial: Crear un servicio web utilizando Visual Basic o Visual C#.

xb5th1ba.alert_note(es-es,VS.90).gifNota:

Si ha cambiado el nombre del servicio web de conversión de temperaturas cuando lo creó, sólo debe utilizar los nombres correspondientes donde aparece el nombre TempConvert1 en este tutorial.

Para crear una aplicación de servicio Web ASP.NET

  1. En el menú Archivo, elija Nuevo sitio Web.

  2. En el cuadro de diálogo Nuevo sitio Web, seleccione el icono Sitio Web ASP.NET.

  3. Introduzca la dirección del servidor Web en el que desea desarrollar la aplicación Web y especifique TempConvertClient1 como nombre de directorio, por ejemplo: "http://MyServer/TempConvertClient1". De manera predeterminada, el proyecto utiliza su equipo local, "http://localhost".

    xb5th1ba.alert_note(es-es,VS.90).gifNota:

    Para algunos tipos de proyecto, el cuadro de texto Name no está disponible porque especificando la ubicación se establece el nombre del proyecto. Por ejemplo, las aplicaciones Web y los servicios Web residen en un servidor Web y sus nombres derivan del directorio virtual especificado en dicho servidor.

    xb5th1ba.alert_note(es-es,VS.90).gifNota:

    Las aplicaciones Web se crean en un servidor de desarrollo. El servidor de desarrollo predeterminado es su equipo local. Normalmente, el proyecto se diseña y se crea en un servidor de desarrollo y luego se implementa en otro servidor (el servidor de implementación) que hospeda la aplicación Web utilizando un proyecto de implementación. Sin embargo, si está desarrollando directamente en el servidor que hospeda la aplicación Web, el servidor de desarrollo y el de implementación son el mismo.

  4. Haga clic en Aceptar para crear el proyecto.

  5. En el Explorador de soluciones, haga clic con el botón secundario en Default.aspx y elija Diseñador de vistas para abrir el diseñador.

  6. Desde la ficha Formularios Web del Cuadro de herramientas, arrastre un Cuadro de texto, una Etiqueta y un Botón hasta la superficie de diseño de Default.aspx y distribúyalos a su gusto.

  7. Haga clic con el botón secundario en el botón que acaba de crear, Button1, y seleccione Propiedades en el menú de acceso directo. En la ventana Propiedades, establezca la propiedad Text en Convertir.

  8. Haga clic con el botón secundario en la etiqueta que acaba de crear, Label1 y seleccione Propiedades en el menú de acceso directo. En la ventana Propiedades, borre la propiedad Text para hacer que la etiqueta esté vacía.

La detección de servicios web es el proceso por el que un cliente encuentra un servicio web y obtiene su descripción. El proceso de detección de servicios web en Visual Studio consiste en la interrogación de un sitio web según un determinado algoritmo. El objetivo del proceso es encontrar la descripción del servicio, que se presenta como un documento XML que utiliza el lenguaje de descripción de servicios Web (WSDL). Para obtener más información, vea Descubrimiento de servicios web XML.

La descripción del servicio muestra los servicios disponibles y cómo interactuar con ellos. Sin una descripción del servicio es imposible interactuar mediante programación con un servicio web. Para obtener más información, vea Descripción del servicio web XML.

La aplicación debe tener un medio de comunicar con el servicio web y de encontrarlo en tiempo de ejecución. Esto lo hace una referencia web agregada al proyecto de servicio web, mediante la generación de una clase de proxy, que interactúa con este y le proporciona una representación local. Para obtener más información, vea Referencias web en Visual Studio y Cómo: Generar un proxy de servicio web.

Para agregar una referencia Web

  1. En el menú Sitio Web, elija Agregar referencia Web.

  2. En el cuadro Dirección URL del cuadro de diálogo Agregar referencia web, escriba la dirección URL para obtener la descripción del servicio web al que desee tener acceso, por ejemplo http://localhost/TempConvert1/Service1.asmx. A continuación, haga clic en el botón Ir para recuperar la descripción del servicio web.

    O bien,

    Si el servicio web existe en el equipo local, haga clic en el vínculo Servicios Web del equipo local, en el panel del explorador. A continuación, haga clic en vínculo del servicio web TempConvert1 de la lista para recuperar la información sobre este servicio.

  3. En el cuadro Nombre de referencia Web, cambie el nombre de la referencia Web y póngale ConvertSvc, que es el espacio de nombres que usará para tener acceso a esta referencia Web.

  4. Haga clic en Agregar referencia con el fin de agregar una referencia web para el servicio web de destino. Para obtener más información, vea Cómo: Agregar y quitar referencias Web.

    Visual Studio descarga la descripción del servicio y genera una clase proxy que hace de interfaz entre su aplicación y el servicio web.

Una vez que ha agregado una referencia al servicio web de su proyecto, el siguiente paso es crear una instancia de la clase proxy del servicio web. A partir de aquí puede obtener acceso a los métodos del servicio web de la misma forma que lo haría para cualquier método de objeto, es decir, llamando a los métodos en la clase proxy. Cuando su aplicación llama a estos métodos, el código generado por Visual Studio controla las comunicaciones entre la aplicación y el servicio web.

En primer lugar, cree una instancia de la clase de proxy del servicio web. Seguidamente, tome un valor, proporcionado en TextBox1, y llame al método ConvertTemperature del servicio web utilizando la clase proxy. En Label1 se mostrará el valor devuelto por el servicio web.

Para obtener acceso al servicio web

  1. Haga doble clic en el botón Convertir en WebForm1.aspx para crear un método de control de eventos para este botón y mostrar el archivo de código subyacente.

  2. Inserte el código siguiente:

    ' Visual Basic
    Protected Sub Button1_Click(ByVal sender As Object, _
      ByVal e as EventArgs) Handles Button1.Click
        Dim ws As New ConvertSvc.Service
        Dim dFahrenheit As Double
        Dim dCelsius As Double
        Try
            dFahrenheit = Convert.ToDouble(TextBox1.Text)
            dCelsius = ws.ConvertTemperature(dFahrenheit)
            Label1.Text = dCelsius.ToString()
        Catch
            Label1.Text = "Conversion failed."
        End Try
    End Sub
    
    // C#
    protected void Button1_Click (System.Object sender, System.EventArgs e)
    {
       try
       {
          ConvertSvc.Service1 ws = new ConvertSvc.Service1();
          double dFahrenheit = Convert.ToDouble(TextBox1.Text);
          double dCelsius = ws.ConvertTemperature(dFahrenheit);
          Label1.Text = dCelsius.ToString();
       }
       catch
       {
          Label1.Text = "Conversion failed.";
       }
    }
    
    xb5th1ba.alert_note(es-es,VS.90).gifNota:

    El nombre de la clase de servicio web generada al agregar una referencia web puede variar con respecto al que anteriormente se ha denominado Service1.

  3. Seleccione Default.aspx en el Explorador de soluciones.

  4. En el menú Sitio Web, haga clic en Establecer como página de inicio.

  5. Guarde la solución.

Para obtener más información, vea Cómo: Obtener acceso a un servicio web en código administrado.

Visual Studio ofrece varios métodos para generar y ejecutar una aplicación Web en un entorno IDE, como por ejemplo:

  • Iniciar (con depuración)

  • Iniciar sin depuración

  • Ver en el explorador

Como cualquier proyecto de Visual Studio, esta aplicación Web tiene configuraciones separadas para las versiones de lanzamiento y de depuración. Dado que creó este proyecto mediante la plantilla de proyecto Aplicación Web ASP.NET, Visual Studio genera automáticamente estas configuraciones y establece las opciones predeterminadas apropiadas y otros valores. Para obtener más información, vea Cómo: Establecer configuraciones Debug y Release.

En este tutorial, pondrá un punto de interrupción en el evento Button1_Click y usará el método Iniciar (con depuración). Para obtener más información, vea Cómo: Depurar servicios web en código administrado.

Antes de depurar, compruebe la configuración de depuración. Para obtener más información, vea Preparación de la depuración: aplicaciones Web ASP.NET.

Para usar un punto de interrupción e iniciar la aplicación Web con depuración

  1. En el menú Depurar, haga clic en Nuevo punto de interrupción y, a continuación, elija Dividir en función.

    Escriba Button1_Click en el cuadro Function y haga clic en Aceptar para colocar un punto de interrupción en el controlador de eventos Button1_Click. Para obtener más información, vea Información general sobre puntos de interrupción.

  2. En el menú Depurar, haga clic en Iniciar, a continuación, haga clic en Aceptar en la ventana Depuración no habilitada para iniciar la depuración.

    Este comando notifica a Visual Studio que ejecute la aplicación Web en el depurador. Visual Studio genera el proyecto y lo implementa en el servidor de desarrollo designado. Al finalizar, el explorador predeterminado inicia y navega hasta el archivo .aspx en el servidor de implementación.

  3. Una vez que la página se muestra en el explorador, escriba el número 212 en el cuadro de texto y haga clic en el botón Convertir.

    El proceso se detiene cuando alcanza el controlador de evento Button1_Click. El depurador de Visual Studio resalta la línea que contiene el punto de interrupción y, mientras aquél está detenido, puede llevar a cabo varias tareas. Para obtener más información, vea Guía básica del depurador y Ver datos en el depurador.

  4. En el menú Depurar, haga clic en Continuar para seguir con el proceso.

  5. El servicio web responde devolviendo el valor convertido y la aplicación establece el texto de Label1 en 100.

    Para detener la ejecución de la aplicación Web y volver al Editor de código, haga clic en Detener depuración en el menú Depurar.

  6. En el menú Depurar, haga clic en Borrar todos los puntos de interrupción.

Para poner la aplicación Web a disposición de todo el mundo, deberá implementarlo en un servidor Web que sea accesible para los clientes a los que desea prestar asistencia. Para implementar la aplicación Web en un servidor diferente del servidor de desarrollo, puede agregar un proyecto de instalación de Web, o bien copiar los archivos requeridos en el servidor de destino. En este tutorial, puede elegir la manera de implementar la aplicación Web. Para obtener más información, vea Implementar aplicaciones y componentes.

Para implementar la aplicación Web utilizando un proyecto de instalación Web

  1. En el menú Archivo, elija Agregar y después haga clic en Newproyecto.

  2. Seleccione el nodo Otros, a continuación el nodo Proyectos de instalación e implementación y, a continuación, haga clic en Proyecto de programa de instalación Web.

  3. En el cuadro Nombre, escriba TempConvertClient1WebSetup y haga clic en Aceptar.

    xb5th1ba.alert_note(es-es,VS.90).gifNota:

    De forma predeterminada, el instalador utiliza el nombre del proyecto de implementación al crear el directorio virtual en su servidor de implementación.

  4. En el panel izquierdo del Editor del sistema de archivos, seleccione Carpeta de aplicación Web. Para obtener más información, vea Editor del sistema de archivos.

  5. En el Explorador de soluciones, haga clic con el botón secundario en TempConvertClient1WebSetup, elija Agregar y, a continuación, haga clic en Resultados del proyecto.

  6. En el cuadro de diálogo Agregar grupo de resultados del proyecto, seleccione Archivos de contenido. Para obtener más información, vea Cómo: Agregar y quitar resultados de proyectos en el Editor del sistema de archivos.

    • El grupo Archivos de contenido consta del resto de archivos de la aplicación Web, como WebForm1.aspx y Web.config.

  7. Haga clic en Aceptar.

  8. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto TempConvertClient1WebSetup y elija Generar en el menú de acceso directo.

    Esto crea un archivo de instalación de Windows en el directorio local del proyecto. Al ejecutar este archivo se instala la aplicación Web.

Para implementar la aplicación Web copiando el proyecto

  1. En el Explorador de soluciones, seleccione el proyecto TempConvertClient1.

  2. En el menú Proyecto, haga clic en Copiar sitio Web.

  3. Haga clic en el icono que aparece junto al cuadro desplegable Conectar con para abrir el cuadro de diálogo Abrir sitio Web. Vaya a la ubicación en la que desea copiar el proyecto.

  4. En el panel Sitio Web de origen, seleccione los archivos que va a copiar y muévalos al panel Sitio Web remoto haciendo clic en el icono de flecha a la derecha.

  5. Haga clic en Copiar sitio Web para copiar el sitio Web.

Adiciones de comunidad

Mostrar: