Exportar (0) Imprimir
Expandir todo

Tutorial: Crear y usar un servicio Web ASP.NET en Visual Web Developer

Además de permitir la creación de páginas Web, Microsoft Visual Studio también permite crear servicios Web que utilizan XML en ASP.NET. Crear un servicio Web en Visual Studio es similar a crear una página Web. También se puede utilizar la herramienta de desarrollo Web Microsoft Visual Web Developer para hacer referencia a servicios Web que están en una solución de Visual Web Developer y utilizarlos en el equipo local o en un directorio UDDI local o externo. En este tutorial, creará el servicio Web en una solución y lo utilizará en otra.

Las tareas ilustradas en este tutorial incluyen:

  • Crear un servicio Web XML simple en Visual Web Developer.

  • Crear un sitio Web independiente que utiliza el servicio Web.

Para poder completar este tutorial, necesitará:

  • Servicios de Microsoft Internet Information Server (IIS) instalado localmente en el equipo.

Cree un servicio Web y una página nuevos siguiendo estos pasos.

NoteNota

Debe utilizar un sitio Web de IIS para este tutorial.

Para crear un servicio Web

  1. Abra Visual Web Developer.

  2. En el menú Archivo, haga clic en Nuevo sitio Web.

    Aparece el cuadro de diálogo Nuevo sitio Web.

  3. En Plantillas instaladas de Visual Studio, haga clic en Servicio Web ASP.NET.

  4. Haga clic en Examinar.

  5. Haga clic en IIS local.

  6. Haga clic en Sitio Web predeterminado.

  7. Haga clic en Crear nueva aplicación Web.

    Visual Web Developer crea una nueva aplicación Web de IIS.

  8. Escriba el nombre TemperatureWebService.

  9. Haga clic en Abrir.

    Aparece el cuadro de diálogo Nuevo sitio Web, con el nombre del nuevo sitio Web en la lista Ubicación situada más a la derecha. La ubicación incluye el protocolo (http://) y la ubicación (localhost). Esto indica que está trabajando con un sitio Web de IIS local.

  10. En la lista Lenguaje, haga clic en el lenguaje de programación con el que prefiera trabajar.

    El lenguaje de programación que ha elegido será el lenguaje predeterminado del sitio Web. Sin embargo, puede utilizar más de un lenguaje en la misma aplicación Web si crea páginas y componentes con lenguajes de programación diferentes. Para obtener más información sobre cómo crear componentes utilizando lenguajes diferentes, vea Carpetas de código compartido en sitios Web ASP.NET.

  11. Haga clic en Aceptar.

    Visual Web Developer crea el nuevo servicio Web y abre una nueva clase denominada Service, que es el servicio Web predeterminado. Sin embargo, en el procedimiento siguiente creará un nuevo servicio Web con un nombre especificado y no utilizará la clase Service.

  12. Cierre la clase Service.

Creará un servicio Web que convierte la temperatura de Fahrenheit en Celsius y viceversa.

Para crear el servicio Web

  1. En el Explorador de soluciones, haga clic con el botón secundario del mouse (ratón) en el nombre del sitio Web (http://localhost/TemperatureWebService) y, a continuación, haga clic en Agregar nuevo elemento.

  2. En Plantillas instaladas de Visual Studio, haga clic en Servicio Web y, a continuación, en el cuadro Nombre, escriba Convert.

  3. Asegúrese de que está activada la casilla de verificación Colocar el código en un archivo independiente y, a continuación, haga clic en Agregar.

    Visual Web Developer crea un nuevo servicio Web que se compone de dos archivos. Convert.asmx, que apunta al código del servicio Web, es el archivo que se puede invocar para llamar a los métodos del servicio Web. El propio código está en un archivo de clase en la carpeta App_Code (Convert.vb, Convert.cs o Convert.jsl, dependiendo del lenguaje de programación). El archivo de código contiene una plantilla para un servicio Web y código para un método de servicio Web.

Creará dos métodos en el servicio Web. El primer método convierte las temperaturas Fahrenheit en Celsius y el segundo convierte las temperaturas Celsius en Fahrenheit.

Para crear los métodos de conversión

  1. Agregue el código siguiente dentro de la clase, después del método HelloWorld:

    [System.Web.Services.WebMethod()]
    public double FahrenheitToCelsius(double Fahrenheit)
    {
        return ((Fahrenheit - 32) * 5) / 9;
    }
    
    [System.Web.Services.WebMethod()]
    public double CelsiusToFahrenheit(double Celsius)
    {
        return ((Celsius * 9) / 5) + 32;
    }
    
    

    Observe que los nombres de función se preceden con un atributo ([System.Web.Services.WebMethod()] o <System.Web.Services.WebMethod()>) como parte de la declaración de función.

  2. Después de haber escrito las funciones, guarde el archivo.

A continuación, puede probar el servicio Web en Visual Web Developer.

Para probar el servicio Web

  1. En el Explorador de soluciones, haga clic en Convert.asmx y, a continuación, presione CTRL+F5.

    Se invoca el servicio Web y aparece en el explorador una página que muestra los métodos que el servicio Web expone.

  2. Haga clic en CelsiusToFahrenheit, que llama al método.

    Aparece una página que le solicita valores de parámetros para el método CelsiusToFahrenheit.

  3. En el cuadro Celsius, escriba 100 y, a continuación, haga clic en Invocar.

    Aparece una nueva ventana que muestra la página XML que el servicio Web devuelve cuando se invoca al método CelsiusToFahrenheit. Aparece el valor 212 en la página XML.

  4. Cierre el explorador que contiene los resultados del método.

  5. En el explorador original, haga clic en Atrás para volver a la lista de métodos.

  6. Haga clic en FahrenheitToCelsius y asegúrese de que el método devuelve los resultados que espera.

    Si escribe 212, el método FahrenheitToCelsius devolverá 100.

  7. Cierre el explorador.

Ha terminado de crear el servicio Web. El paso siguiente es utilizarlo.

Ahora que tiene un servicio Web, creará un sitio Web donde hará referencia al servicio que ha creado y lo utilizará. En el tutorial, creará un sitio Web independiente que tiene una página donde podrá iniciar los métodos del servicio Web que acaba de crear.

Para crear un sitio Web para utilizar el servicio Web

  1. En el menú Archivo, haga clic en Nuevo sitio Web.

  2. En Plantillas instaladas de Visual Studio, haga clic en Sitio Web de ASP.NET.

  3. Haga clic en Examinar.

  4. Haga clic en IIS local.

  5. Haga clic en Sitio Web predeterminado.

  6. Haga clic en Crear nueva aplicación Web.

    Visual Web Developer crea una nueva aplicación Web de IIS.

  7. Escriba el nombre TemperatureWeb.

  8. Haga clic en Abrir.

  9. En la lista Lenguaje, haga clic en el lenguaje de programación con el que prefiera trabajar.

  10. Haga clic en Aceptar.

    Visual Web Developer crea un nuevo sitio Web de IIS local y una nueva página denominada Default.aspx.

El servicio Web es un componente al que puede hacer referencia en su aplicación. Por consiguiente, debe crear una referencia a él.

Para crear una referencia al servicio Web

  1. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el nombre del sitio Web y, a continuación, seleccione Agregar referencia Web.

    Aparecerá el cuadro de diálogo Agregar referencia Web, tal y como se muestra en la siguiente captura de pantalla.

    Agregar referencia Web (Cuadro de diálogo)


    Cuadro de diálogo Agregar referencia Web
  2. En la lista Dirección URL, escriba la dirección URL siguiente para el servicio Web y, a continuación, haga clic en Ir:

    http://localhost/TemperatureWebService/Convert.asmx

    Cuando Visual Web Developer encuentra el servicio Web, aparece información sobre el servicio Web en el cuadro de diálogo Agregar referencias Web.

    NoteNota

    Si no puede agregar una referencia a un servicio Web, podría deberse a que el servidor proxy no está configurado correctamente. En Microsoft Internet Explorer, en el menú Herramientas, haga clic en Opciones de Internet, haga clic en Conexiones y, a continuación, en Configuración LAN. Active la casilla de verificación No usar servidor proxy para direcciones locales. Además, establezca la dirección del servidor proxy en el nombre exacto del servidor proxy en lugar de permitir que Internet Explorer lo detecte. Para obtener más información, póngase en contacto con el administrador de la red.

  3. Haga clic en uno de los vínculos de método.

    Aparece la página de prueba para el método.

  4. Haga clic en Agregar referencia.

    Visual Web Developer crea una carpeta App_WebReferences y le agrega una carpeta para la nueva referencia Web. De manera predeterminada, se asigna un espacio de nombres a las referencias Web correspondiente al nombre de su servidor (en este caso, localhost). Anote el nombre del espacio de nombres de la referencia Web. En la carpeta, Visual Web Developer agrega un archivo .wsdl que hace referencia al servicio Web. También agrega archivos de compatibilidad, como archivos de descubrimiento (.disco y .discomap), que incluyen información sobre la ubicación del servicio Web.

    NoteNota

    Si el nombre de servidor del servicio Web contiene caracteres que no se pueden utilizar para un nombre de clase, por ejemplo un guión (-), Visual Web Developer los convierte en un carácter de subrayado (_). Por consiguiente, el espacio de nombres de Visual Web Developer para el servicio Web podría no coincidir exactamente con el nombre del servidor.

Ahora puede utilizar el servicio Web. En este tutorial, agregará controles a Default.aspx y, a continuación, programará los controles para convertir una temperatura especificada en Fahrenheit o Celsius. Cuando ejecute la página, tendrá la apariencia siguiente:

Página de conversión de temperatura


Captura de pantalla de VenusWebServicesWalkthroughConsumePage

Para llamar a los métodos del servicio Web

  1. Abra la página Default.aspx y cambie a la vista Diseño.

  2. En el grupo Estándar del Cuadro de herramientas, arrastre los controles siguientes a la página y establezca sus propiedades como se indica:

    Control Propiedades

    Textbox

    ID: TemperatureTextbox

    Text: (vacío)

    Button

    ID: ConvertButton

    Text: Convert

    Label

    ID: FahrenheitLabel

    Text: (vacío)

    Label

    ID: CelsiusLabel

    Text: (vacío)

  3. Opcionalmente, agregue texto a la página para los títulos.

    En este tutorial, el diseño de la página no es importante.

  4. Haga doble clic en ConvertButton a fin de crear un controlador de eventos para el evento Click.

  5. Asegúrese de que el código del controlador de eventos coincida con el código del siguiente ejemplo.

    protected void ConvertButton_Click(object sender, EventArgs e)
    {
        localhost.Convert wsConvert = new localhost.Convert();
        double temperature =
            System.Convert.ToDouble(TemperatureTextbox.Text);
        FahrenheitLabel.Text = "Fahrenheit To Celsius = " +
            wsConvert.FahrenheitToCelsius(temperature).ToString();
        CelsiusLabel.Text = "Celsius To Fahrenheit = " +
            wsConvert.CelsiusToFahrenheit(temperature).ToString();
    }
    
    
  6. Presione CTRL+F5 para ejecutar la página.

  7. En el cuadro de texto, escriba un valor, por ejemplo 100, y, a continuación, haga clic en Convert.

    La página presenta el resultado de convertir el valor de temperatura en Fahrenheit o Celsius.

Puede depurar un servicio Web de la misma forma que las páginas Web.

NoteNota

Visual Web Developer Express Edition y Visual Studio Standard Edition no admiten la ejecución paso a paso de un servicio Web desde una página que haga referencia a él. Si utiliza Visual Web Developer Express Edition o Visual Studio Standard Edition, omita esta sección y las siguientes. Para obtener más información sobre cómo depurar sitios Web, vea Tutorial: Depurar páginas Web en Visual Web Developer.

Para empezar, debe configurar el sitio Web que contiene el servicio Web a fin de habilitar la depuración.

Para habilitar la depuración en el sitio Web de los servicios Web

  1. En el menú Archivo, haga clic en Abrir sitio Web.

  2. Haga clic en IIS local.

  3. Haga clic en TemperatureWebService y en Abrir.

  4. En el menú Sitio Web, haga clic en Configuración de ASP.NET para abrir la herramienta Administración de sitios Web.

    NoteNota

    Si es la primera vez que ejecuta la herramienta Administración de sitios Web, podría producirse cierto retraso antes de que aparezca.

  5. Haga clic en Aplicación y, a continuación, en Configuración de la aplicación.

  6. En Depuración y seguimiento, haga clic en Configurar depuración y seguimiento.

  7. Active la casilla de verificación Habilitar depuración.

    La herramienta Administración de sitios Web crea un archivo Web.config para el sitio Web y establece una opción de configuración para habilitar la depuración.

    NoteNota

    Para ver el archivo Web.config en el Explorador de soluciones, haga clic en el nombre del sitio Web y, a continuación, en la barra de herramientas del Explorador de soluciones, haga clic en Actualizar.

  8. Cierre la herramienta Administración de sitios Web.

A continuación debe habilitar la depuración para el sitio Web que utiliza el servicio Web.

Para habilitar la depuración en el sitio Web

  1. Abra el sitio TemperatureWeb.

  2. En el menú Sitio Web, haga clic en Configuración de ASP.NET para abrir la herramienta Administración de sitios Web.

  3. Haga clic en Aplicación, luego en Configuración de la aplicación, bajo Depuración y seguimiento haga clic en Configurar depuración y seguimiento y, a continuación, active la casilla de verificación Habilitar depuración.

  4. Cierre la herramienta Administración de sitios Web.

    NoteNota

    Para ver el archivo Web.config en el Explorador de soluciones, seleccione el nombre del sitio Web y, a continuación, en la barra de herramientas del Explorador de soluciones, haga clic en Actualizar.

  5. En el Explorador de soluciones, haga clic con el botón secundario del mouse en Default.aspx y, a continuación, seleccione Ver código.

    Visual Web Developer abre el archivo de código fuente correspondiente a la página.

  6. Coloque el puntero en la línea siguiente:

    double temperature =
        System.Convert.ToDouble(TemperatureTextbox.Text);
    
    
  7. Presione F9 para establecer un punto de interrupción en la línea.

El sitio Web y el servicio Web están configurados para la depuración, de forma que ahora puede probar la depuración. Empezará en la página Default.aspx y recorrerá el código hasta que éste invoque el servicio Web. El depurador cambiará al servicio Web y seguirá recorriendo el código.

Para depurar la página y el servicio Web

  1. Presione F5 para ejecutar la página Default.aspx con depuración.

    La página aparece en el explorador.

  2. En el cuadro de texto, escriba un valor, por ejemplo 100 y, a continuación, haga clic en Convert.

    Visual Web Developer comienza la ejecución del código de la página, pero se detiene y resalta la línea que tiene un punto de interrupción.

  3. Presione F11 para desplazarse a la línea siguiente.

  4. Presione F11 de nuevo.

    Dado que la línea siguiente invoca el servicio Web, el depurador va al servicio Web y se detiene en la primera línea del método FahrenheitToCelsius.

  5. Siga presionando F11.

    El depurador recorre el resto del método y, a continuación, vuelve a la página de llamada. Si sigue recorriendo el código, el depurador volverá al servicio Web y al método CelsiusToFahrenheit.

  6. Cierre el explorador; también se cerrará el depurador.

En este tutorial se han mostrado los principios básicos para crear un servicio Web muy sencillo y utilizarlo en una aplicación ASP.NET. Quizás desee experimentar con características de servicios Web más complejas. Las sugerencias para la exploración adicional incluyen lo siguiente:

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft