Vous êtes sur la page 1sur 9

Tomado de: https://msdn.microsoft.com/es-es/library/8wbhsy70%28v=vs.100%29.aspx?

cs-save-
lang=1&cs-lang=vb#code-snippet-1

https://msdn.microsoft.com/es-es/library/8wbhsy70(v=vs.100).aspx

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


Web Developer
.NET Framework 3.5
Otras versiones

Adems de permitir la creacin de pginas Web, Microsoft Visual Studio tambin permite crear
servicios Web que utilizan XML en ASP.NET. Crear un servicio Web en Visual Studio es similar a
crear una pgina Web. Tambin se puede utilizar la herramienta de desarrollo Web Microsoft
Visual Web Developer para hacer referencia a servicios Web que estn en una solucin 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 solucin 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.

Requisitos previos
Para poder completar este tutorial, necesitar:
Microsoft Internet Information Services (IIS) instalado localmente en el equipo.
.NET Framework versin 3.5 o posterior.

Crear un servicio Web bajo la raz de IIS


Cree un servicio Web y una pgina nuevos siguiendo estos pasos.

Nota
Debe utilizar un sitio Web de IIS para este tutorial.

Para crear un Proyecto para un Servicio Web


1. Abra Visual Web Developer.
2. En el men Archivo, haga clic en Nuevo sitio Web. Aparece el cuadro de dilogo 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 aplicacin Web. Visual Web Developer crea una nueva aplicacin
Web de IIS.
8. Escriba el nombre TemperatureWebService.
9. Haga clic en Abrir.

Aparece el cuadro de dilogo Nuevo sitio Web, con el nombre del nuevo sitio Web en la lista
Ubicacin situada ms a la derecha. La ubicacin incluye el protocolo (http://) y la ubicacin
(localhost). Esto indica que est trabajando con un sitio Web de IIS local.

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

El lenguaje de programacin que ha elegido ser el lenguaje predeterminado del sitio Web. Sin
embargo, puede utilizar ms de un lenguaje en la misma aplicacin Web si crea pginas y
componentes con lenguajes de programacin diferentes. Para obtener ms informacin sobre
cmo crear componentes utilizando lenguajes diferentes, vea Carpetas de cdigo compartido
en proyectos 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 el servicio Web


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 botn secundario del mouse en el nombre del
sitio Web (http://localhost/TemperatureWebService) y, a continuacin, haga clic en Agregar
nuevo elemento.
2. En Plantillas instaladas de Visual Studio, haga clic en Servicio Web y, a continuacin, en el
cuadro Nombre, escriba Convert (este ser el nombre del servicio web).
3. Asegrese de que est activada la casilla Colocar el cdigo en un archivo independiente y, a
continuacin, haga clic en Agregar.
Visual Web Developer crea un nuevo servicio Web que se compone de dos archivos.
Convert.asmx, que apunta al cdigo del servicio Web, es el archivo que se puede invocar para
llamar a los mtodos del servicio Web. El propio cdigo est en un archivo de clase en la
carpeta App_Code (Convert.vb, Convert.cs o Convert.jsl, dependiendo del lenguaje de
programacin). El archivo de cdigo contiene una plantilla para un servicio Web y cdigo para
un mtodo de servicio Web.

Crear dos mtodos en el servicio Web. El primer mtodo convierte las temperaturas Fahrenheit
en Celsius y el segundo convierte las temperaturas Celsius en Fahrenheit.

Para crear los mtodos de conversin


1. Agregue el cdigo siguiente dentro de la clase, despus del mtodo HelloWorld:
VB.NET
<System.Web.Services.WebMethod()> _
Public Function FahrenheitToCelsius(ByVal Fahrenheit As Double) _
As Double
Return ((Fahrenheit - 32) * 5) / 9
End Function

<System.Web.Services.WebMethod()> _
Public Function CelsiusToFahrenheit(ByVal Celsius As Double) _
As Double
Return ((Celsius * 9) / 5) + 32
End Function

Observe que los nombres de funcin se preceden con un atributo


([System.Web.Services.WebMethod()] o <System.Web.Services.WebMethod()>) como parte de la
declaracin de funcin.

2. Despus de haber escrito las funciones, guarde el archivo.

A continuacin, 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 continuacin, presione CTRL+F5.


Se invoca el servicio Web y aparece en el explorador una pgina que muestra los mtodos que
el servicio Web expone.
2. Haga clic en CelsiusToFahrenheit, que llama al mtodo.
Aparece una pgina que le solicita valores de parmetros para el mtodo CelsiusToFahrenheit.
3. En el cuadro Celsius, escriba 100 y, a continuacin, haga clic en Invocar.
Aparece una nueva ventana que muestra la pgina XML que el servicio Web devuelve cuando
se invoca al mtodo CelsiusToFahrenheit. Aparece el valor 212 en la pgina XML.
4. Cierre el explorador que contiene los resultados del mtodo.
5. En el explorador original, haga clic en Atrs para volver a la lista de mtodos.
6. Haga clic en FahrenheitToCelsius y asegrese de que el mtodo devuelve los resultados que
espera.
Si escribe 212, el mtodo FahrenheitToCelsius devolver 100.
7. Cierre el explorador.
Ha terminado de crear el servicio Web. El paso siguiente es utilizarlo.

Utilizar el servicio Web


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 pgina donde
podr iniciar los mtodos 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 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 aplicacin Web.

Visual Web Developer crea una nueva aplicacin Web de IIS.

7. Escriba el nombre TemperatureWeb.


8. Haga clic en Abrir.
9. En la lista Lenguaje, haga clic en el lenguaje de programacin con el que prefiera trabajar.
10. Haga clic en Aceptar.
Visual Web Developer crea un nuevo sitio Web de IIS local y una nueva pgina denominada
Default.aspx.

Agregar el servicio Web como un componente a un


aplicativo WEB
El servicio Web es un componente al que puede hacer referencia en su aplicacin. Por
consiguiente, debe crear una referencia a l.
Para crear una referencia al servicio Web
1. En el men Sitio web, haga clic en Agregar referencia web.
Aparecer el cuadro de dilogo Agregar referencia Web, tal y como se muestra en la siguiente
captura de pantalla.
Agregar referencia Web (Cuadro de dilogo)
Cuadro de dilogo Agregar referencia Web
Nota
En Visual Studio 2013:
1. En el men Sitio web, haga clic en Agregar referencia de Servicio. Se abre el cuadro de
dilogo correspondiente.
2. Presionar el botn Avanzadas aparecer el cuadro de dilogo Configuracin de
referencia de servicio
3. Presionar el botn Agregar referencia web

2. En la lista Direccin URL, escriba la direccin URL siguiente para el servicio Web y, a
continuacin, haga clic en Ir:
http://localhost/TemperatureWebService/Convert.asmx

Cuando Visual Web Developer encuentra el servicio Web, aparece informacin sobre el
servicio Web en el cuadro de dilogo Agregar referencias Web.

Nota
Si no puede agregar una referencia a un servicio Web, podra 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 continuacin, en Configuracin
LAN. Active la casilla No usar servidor proxy para direcciones locales. Adems, establezca la
direccin del servidor proxy en el nombre exacto del servidor proxy en lugar de permitir que
Internet Explorer lo detecte. Para obtener ms informacin, pngase en contacto con el
administrador de la red.

3. Haga clic en uno de los vnculos de mtodo.


Aparece la pgina de prueba para el mtodo.
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. Tambin agrega archivos de
compatibilidad, como archivos de descubrimiento (.disco y .discomap), que incluyen
informacin sobre la ubicacin del servicio Web.

Nota
Si el nombre de servidor del servicio Web contiene caracteres que no se pueden utilizar para un
nombre de clase, por ejemplo un guion (-), Visual Web Developer los convierte en un carcter de
subrayado (_). Por consiguiente, el espacio de nombres de Visual Web Developer para el servicio
Web podra no coincidir exactamente con el nombre del servidor.

Ahora puede utilizar el servicio Web. En este tutorial, agregar controles a Default.aspx y, a
continuacin, programar los controles para convertir una temperatura especificada en
Fahrenheit o Celsius. Cuando ejecute la pgina, tendr la apariencia siguiente:
Pgina de conversin de temperatura
Para llamar a los mtodos del servicio Web

1. Abra la pgina Default.aspx y cambie a la vista Diseo.


2. En el grupo Estndar del Cuadro de herramientas, arrastre los controles siguientes a la pgina
y establezca sus propiedades como se indica:

Control Propiedades
ID: TemperatureTextbox
Textbox
Text: (vaco)
ID: ConvertButton
Button
Text: Convertir
ID: FahrenheitLabel
Label
Text: (vaco)
ID: CelsiusLabel
Label
Text: (vaco)

3. Opcionalmente, agregue texto a la pgina para los ttulos.


En este tutorial, el diseo de la pgina no es importante.
4. Haga doble clic en ConvertButton a fin de crear un controlador de eventos para el evento
Click.
5. Asegrese de que el cdigo del controlador de eventos coincida con el cdigo del siguiente
ejemplo.

VB

Dim wsConvert As New localhost.Convert()


Dim temperature As 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 pgina.


7. En el cuadro de texto, escriba un valor, por ejemplo 100, y a continuacin, haga clic en
Convertir.
La pgina presenta el resultado de convertir el valor de temperatura en Fahrenheit o Celsius.
Depurar el servicio Web
Puede depurar un servicio Web de la misma forma que las pginas Web.
Nota
Visual Web Developer Express y Visual Studio Standard no admiten la ejecucin paso a paso de
un servicio Web desde una pgina que haga referencia a l. Si usa Visual Web Developer Express
o Visual Studio Standard, omita esta seccin y las siguientes. Para obtener ms informacin
sobre cmo depurar sitios Web, vea Tutorial: Depurar pginas Web en Visual Web Developer.

Para empezar, debe configurar el sitio Web que contiene el servicio Web a fin de habilitar la
depuracin.
Para habilitar la depuracin 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 Configuracin de ASP.NET para abrir la herramienta
Administracin de sitios Web.

Nota
Si es la primera vez que ejecuta la herramienta Administracin de sitios Web, podra producirse
cierto retraso antes de que aparezca.

5. Haga clic en Aplicacin y, a continuacin, en Configuracin de la aplicacin.


6. En Depuracin y traza, haga clic en Configurar depuracin y traza.
7. Active la casilla Habilitar depuracin.

La herramienta Administracin de sitios Web crea un archivo Web.config para el sitio Web y
establece una opcin de configuracin para habilitar la depuracin.

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

8. Cierre la herramienta Administracin de sitios Web.

A continuacin debe habilitar la depuracin para el sitio Web que utiliza el servicio Web.

Para habilitar la depuracin en el sitio Web

1. Abra el sitio TemperatureWeb.


2. En el men Sitio Web, haga clic en Configuracin de ASP.NET para abrir la herramienta
Administracin de sitios Web.
3. Haga clic en Aplicacin, luego en Configuracin de la aplicacin, bajo Depuracin y traza haga
clic en Configurar depuracin y traza y, a continuacin, active la casilla Habilitar depuracin.
4. Cierre la herramienta Administracin de sitios Web.
Nota
Para ver el archivo Web.config en el Explorador de soluciones, seleccione el nombre del sitio
Web y, a continuacin, en la barra de herramientas del Explorador de soluciones, haga clic en
Actualizar.

5. En el Explorador de soluciones, haga clic con el botn secundario del mouse en Default.aspx y,
a continuacin, seleccione Ver cdigo.
Visual Web Developer abre el archivo de cdigo fuente correspondiente a la pgina.
6. Coloque el puntero en la lnea siguiente:

VB

temperature = System.Convert.ToDouble(TemperatureTextbox.Text)

7. Presione F9 para establecer un punto de interrupcin en la lnea.

Probar la depuracin
El sitio Web y el servicio Web estn configurados para la depuracin, de forma que ahora puede
probar la depuracin. Empezar en la pgina Default.aspx y recorrer el cdigo hasta que ste
invoque el servicio Web. El depurador cambiar al servicio Web y seguir recorriendo el cdigo.

Para depurar la pgina y el servicio Web


1. Presione F5 para ejecutar la pgina Default.aspx con depuracin.
La pgina aparece en el explorador.
2. En el cuadro de texto, escriba un valor, por ejemplo 100 y, a continuacin, haga clic en
Convertir.
Visual Web Developer comienza la ejecucin del cdigo de la pgina, pero se detiene y resalta
la lnea que tiene un punto de interrupcin.
3. Presione F11 para desplazarse a la lnea siguiente.
4. Presione F11 de nuevo.
Dado que la lnea siguiente invoca el servicio Web, el depurador va al servicio Web y se
detiene en la primera lnea del mtodo FahrenheitToCelsius.
5. Siga presionando F11.
6. El depurador recorre el resto del mtodo y, a continuacin, vuelve a la pgina de llamada. Si
sigue recorriendo el cdigo, el depurador volver al servicio Web y al mtodo
CelsiusToFahrenheit.
7. Cierre el explorador; tambin se cerrar el depurador.