Está en la página 1de 5

Pgina 1 de 5

Cmo: Crear un mtodo de servicio web


Al crear un servicio web en cdigo administrado, hay que indicar los mtodos disponibles a travs de dicho
servicio web anteponiendo el atributo WebMethod a la declaracin de mtodo de un mtodo Public. Los mtodos
Private no pueden servir de punto de entrada a un servicio web, aunque s pueden estar en la misma clase y ser
llamados por el cdigo del servicio web. El atributo WebMethod se debe aplicar a cada mtodo pblico que est
disponible como parte del servicio web. Para obtener ms informacin, vea Cmo: Utilizar el atributo WebMethod.
Los siguientes procedimientos presuponen que se trabaja con los mtodos pblicos de una clase que representa la
implementacin de un servicio web. Para obtener ms informacin, vea Modelo de cdigo para servicios web en
cdigo administrado.

Para crear un mtodo de servicio web


1. Haga doble clic en el archivo .vb o .cs (por ejemplo, Service1.vb o Service1.cs) en el Explorador de
soluciones para abrir el Editor de cdigo.
2. Agregue un mtodo pblico a la clase especificada en la propiedad Class de la directiva de procesamiento
WebService del archivo .asmx como se indica a continuacin:

3. Public Class Service1


4.
Inherits System.Web.Services.WebService
5.
<System.Web.Services.WebMethod()> _
6.
Public Function ConvertTemperature(ByVal dFahrenheit As Double) _
7.
As Double
8.
ConvertTemperature = ((dFahrenheit - 32) * 5) / 9
9.
End Function
10. End Class

Modelo de cdigo para servicios web en cdigo administrado


Los servicios web se componen de dos partes: el punto de entrada al servicio web y el cdigo que implementa la
funcionalidad del servicio web. En ASP.NET, el archivo .asmx es un archivo de texto que sirve de punto de
entrada direccionable del servicio web. Hace referencia al cdigo de ensamblados precompilados, a un archivo
de cdigo subyacente o a un cdigo contenido en el propio archivo .asmx.

de entrada direccionable del servicio web. Hace referencia al cdigo de ensamblados precompilados, a un archivo
de cdigo subyacente o a un cdigo contenido en el propio archivo .asmx.
Nota:
Si el cdigo est contenido directamente en el archivo .asmx, ASP.NET lo compilar a peticin en el servidor.

Pgina 2 de 5

La directiva de procesamiento WebService situada en la parte superior del archivo .asmx determina dnde se
buscar la implementacin del servicio web. De forma predeterminada, Visual Studio utiliza archivos de cdigo en
segundo plano, como Service1.asmx.vb o Service1.asmx.cs, cuando se crea un servicio web con la plantilla de
proyecto de servicio web ASP.NET.
Nota:
Visual Studio no admite la compilacin entre lenguajes. Por ejemplo, no es posible incluir un servicio web de
Visual C# en un proyecto de aplicacin web ASP.NET de Visual Basic, y viceversa.
Cuando se crea un servicio web en cdigo administrado, ASP.NET automticamente proporciona la infraestructura
y controla el procesamiento de solicitudes y respuestas del servicio web, incluido el anlisis y la creacin de
mensajes SOAP.

Directiva de procesamiento WebService


La directiva de procesamiento WebService, situada en la parte superior de la pgina .asmx, contiene informacin
en forma de atributos relacionados con la implementacin del servicio web. Esta directiva de procesamiento
proporciona informacin necesaria al entorno ASP.NET, as cmo la clase que implementar la funcionalidad del
servicio web. A continuacin se ofrece un ejemplo de la directiva de procesamiento WebService:
[Visual Basic]
<%@ WebService Language="vb" Codebehind="Service1.asmx.vb"
Class="WebService1.Service1" %>

El atributo Language indica el lenguaje de programacin utilizado para desarrollar el servicio web. Los servicios
web se pueden crear en cualquier lenguaje compatible con .NET, como Visual Basic .NET o Visual C#.
Al crear servicios web en cdigo administrado con Visual Studio .NET, la implementacin del servicio web reside
en un archivo de cdigo en segundo plano. El archivo de cdigo subyacente se asocia a la pgina .asmx mediante el
atributo Codebehind.
Nota:

Este atributo ayuda a Visual Studio a administrar el proyecto de servicio web y no es necesario en tiempo de
ejecucin.
Cuando se utiliza la plantilla de proyecto de servicio web ASP.NET, el atributo Class indica qu clase del archivo
de cdigo subyacente implementar la funcionalidad del servicio web.
Visual Studio .NET inserta automticamente esta directiva de procesamiento en el archivo .asmx cuando se utiliza
la plantilla de proyecto de servicio Web ASP.NET.
Sugerencia:

Si se decide cambiar el nombre de la clase, hay que asegurarse de cambiarlo en el atributo Class de la directiva

Pgina 3 de 5

WebService.
Nota:

Para ver el contenido del archivo .asmx, en el Explorador de soluciones, haga clic con el botn secundario del
mouse en el archivo .asmx y despus haga clic en Abrir con en el men de acceso directo. En el cuadro de dilogo
Abrir con, seleccione Editor de cdigo fuente (texto) y, a continuacin, haga clic en Abrir.
Para obtener ms informacin, vea Tutorial: Generar un servicio web XML bsico con ASP.NET..

Clase System.Web.Services.WebService
La clase System.Web.Services.WebService, que define la clase base opcional de los servicios web, proporciona
acceso directo a los objetos ASP.NET comunes, como los destinados a estados de aplicacin y de sesin. De forma
predeterminada, los servicios web creados en cdigo administrado con Visual Studio se heredan de esta clase. El
servicio web se puede heredar de esta clase para obtener acceso a objetos intrnsecos de ASP.NET, como Request y
Session. Para obtener ms informacin, vea WebService (Clase).
Si el servicio web no hereda de esta clase, puede obtener acceso a objetos intrnsecos de ASP.NET desde
System.Web.HttpContext.Current. La clase que implementa el servicio web debe ser pblica y debe tener un
constructor pblico predeterminado (sin parmetros). De este modo ASP.NET podr crear una instancia de la clase
del servicio web para procesar las solicitudes de servicio web entrantes. Para obtener ms informacin, vea
HttpContext.Current (Propiedad).
Copiar
[Visual Basic]
Imports System.Web.Services
Public Class Service1
Inherits System.Web.Services.WebService
' Implementation code.
End Class

Para obtener ms informacin, vea Herencia de la clase WebService.

Atributo WebService
Cada servicio web requiere un espacio de nombres nico que permita a las aplicaciones cliente diferenciar entre los
servicios web que utilicen el mismo nombre de mtodo. El espacio de nombres predeterminado de los servicios
web creados en Visual Studio .NET es "http://tempuri.org/WebService1/Service1", donde WebService1 es el
nombre del proyecto y Service1 es el nombre de la clase. Aunque el espacio de nombres se asemeja a una direccin
URL normal, no es de esperar que se pueda ver en un explorador web, ya que se trata simplemente de un
identificador nico.
Nota:

Quiz convenga incluir una pgina web en dicha ubicacin con informacin sobre los servicios web
proporcionados.

Pgina 4 de 5

Utilice el atributo WebService para especificar el espacio de nombres y proporcionar una breve descripcin del
servicio web. Dicha descripcin aparecer en la pgina de ayuda del servicio web cuando se invoque dicho servicio
desde un explorador sin especificar una cadena de consulta:
Copiar
[Visual Basic]
<System.Web.Services.WebService( _
Namespace:="http://tempuri.org/WebService1/Service1", _
Description:="A short description of the Web service.")> _
Public Class Service1
Inherits System.Web.Services.WebService
' Implementation code.
End Class

Aplicar el atributo WebMethod


Para exponer un mtodo como parte de un servicio web, hay que anteponer un atributo WebMethod a la
declaracin de cada mtodo pblico que se vaya a exponer. Para obtener ms informacin, vea Cmo: Crear un
mtodo de servicio web.
[Visual Basic]
<System.Web.Services.WebMethod()> _
Public Function MyString(ByVal x as string) As String
' Implementation code.
End Function

El atributo WebMethod contiene varias propiedades para configurar el comportamiento del servicio web. Para
obtener ms informacin, vea WebMethodAttribute (Clase) y Utilizar el atributo WebMethod. Este atributo se
puede utilizar, por ejemplo, para incluir una descripcin breve que aparecer en la pgina de ayuda del servicio
asociado:
[Visual Basic]
<System.Web.Services.WebMethod( _
Description:="A short description of this method.")> _
Public Function MyString(ByVal x as string) As String
' Implementation code.
End Function

Separe varias propiedades con una coma. Por ejemplo, para proporcionar una descripcin y almacenar en cach
los resultados de un servicio web durante 60 segundos:
[Visual Basic]
<System.Web.Services.WebMethod( _
Description:="A short description of this method.", _
CacheDuration:=60)> _
Public Function MyString(ByVal x as string) As String
' Implementation code.
End Function

Cada servicio web se compone de un archivo .asmx y una clase de servicio web. El archivo .asmx contiene una
directiva de procesamiento WebService que hace referencia a la clase. La clase de servicio web es pblica; tiene

Pgina 5 de 5

un constructor pblico predeterminado y contiene uno o varios mtodos pblicos marcados con el atributo
WebMethod. El siguiente diagrama muestra la relacin existente entre el proyecto, la clase, sus mtodos y el
servicio web resultante.
Clases

WebService

elementos

resultantes

También podría gustarte