Compartir a través de


Tutorial: Generar un servicio web XML básico con ASP.NET.

Este tema es específico de una tecnología heredada. Ahora, los servicios Web XML y los clientes de servicios Web XML deben crearse con Windows Communication Foundation.

Desarrollar un servicio Web XML utilizando los inicios de ASP.NET con los pasos siguientes:

  1. Cree un archivo con una extensión de nombre de archivo de .asmx y declare un servicio Web en él utilizando una directiva @WebService

  2. Cree una clase que implemente el servicio Web. La clase puede derivar opcionalmente de la clase WebService.

  3. Opcionalmente, aplique el atributo WebServiceAttribute a la clase que implementa el servicio Web.

  4. Defina los métodos de servicio Web que crean la funcionalidad del servicio Web.

Declarar un servicio Web

Al crear un servicio Web XML en ASP.NET, se coloca la directiva @ WebService necesaria al principio de un archivo de texto con una extensión de nombre de archivo .asmx. La presencia del archivo .asmx y la directiva @ WebService pone en correlación la dirección URL del servicio Web XML con su implementación. Después, implementa la clase de servicio Web XML que define los métodos y tipos de datos visibles por los clientes de servicios web XML. Finalmente, agrega su lógica del servicio Web XML a esos métodos para procesar las solicitudes del servicio Web XML y devolver las respuestas. La clase de servicio Web XML que se defina puede incluirse directamente en el archivo .asmx o en un archivo independiente. Si usa un archivo independiente, debe estar compilado en un ensamblado. Opcionalmente, puede aplicar un atributo WebService a la clase que implementa el servicio Web XML. La clase que implementa el servicio Web XML puede derivar de la clase WebService.

Para declarar un servicio Web cuya implementación reside en el mismo archivo

  1. Agregue una directiva @ WebServicea la parte superior de un archivo con una extensión de nombre de archivo de .asmx, especificando la clase que implementa el servicio Web y el lenguaje de programación que se utilizan en la implementación.

    El atributo clase puede estar establecido en una clase que reside en el mismo ensamblado como la directiva @WebService o a una clase dentro de un ensamblado independiente. Si la clase reside en un ensamblado diferente, debe colocarse en el directorio \Bin bajo la aplicación web donde reside el servicio Web. El atributo lenguaje puede estar establecido respectivamente en C#, VBy JS, a los que se hacen referencia C#, Visual Basic .NET y JScript .NET.

    El ejemplo de código siguiente establece el atributo lenguaje de la directiva @ WebService , y establece el atributo clase a Util, que reside en el mismo archivo.

    <%@ WebService Language="C#" Class="Util" %>
    
    <%@ WebService Language="VB" Class="Util" %>
    

Para declarar un servicio Web cuya implementación reside en un ensamblado

  1. Agregue una directiva @ WebServicea la parte superior de un archivo con una extensión .asmx, especificando la clase que implementa el servicio Web, el ensamblado que contiene la implementación y el lenguaje de programación que se utiliza en la implementación. Si usa un archivo independiente, debe estar compilado en un ensamblado.

    La siguiente directiva**@WebService** es la única línea en un archivo con una extensión .asmx, especificando que la clase MyName.MyWebService reside en el ensamblado MyAssembly dentro del directorio \Bin de la aplicación web que está hospedando el servicio Web.

    <%@ WebService Language="C#" Class="MyName.MyWebService,MyAssembly" %>
    
    <%@ WebService Language="VB" Class="MyName.MyWebService,MyAssembly" %>
    
    7hs6sw69.note(es-es,VS.100).gifNota:
    Si no especifica un ensamblado dentro de la directiva @WebService, a continuación, ASP.NET busca a través de la lista de ensamblados en el directorio \Bin de la aplicación web que está hospedando el ServicioWeb la primera vez que se obtiene acceso a éste. Por consiguiente, mejorará el rendimiento en el primer acceso proporcionando el nombre del ensamblado.

Derivación de la clase WebService

Las clases que implementan un servicio Web que creado con ASP.NET pueden derivar opcionalmente de la clase WebService para obtener acceso a los objetos de ASP.NET comunes, como Aplicación, Sesión, Usuario y Contexto.

Derivar de la clase WebService y tener acceso a los objetos de ASP.NET comunes

<%@ WebService Language="C#" Class="Util" %>
using System;
using System.Web.Services;

public class Util: WebService 
<%@ WebService Language="VB" Class="Util" %>
Imports System
Imports System.Web.Services

Public Class Util
   Inherits WebService

Aplicación del atributo WebService

Aplique el atributo opcionalWebService a una clase que implementa un servicio Web para establecer el espacio de nombres XML predeterminado para el servicio Web, que originalmente es http://tempuri.org, junto con una cadena para describir el servicio Web.

Se recomienda cambiar este espacio de nombres predeterminado, que es http://tempuri.org, antes de que el servicio Web XML se use públicamente. Esto es importante porque el servicio Web XML debe diferenciarse de otros servicios web XML que podrían usar inadvertidamente el espacio de nombres como valor predeterminado (<http://tempuri.org/>).

Para establecer el espacio de nombres XML del que un Servicio web es un miembro

  1. Aplique un atributo WebService a la clase que está implementando el servicio Web, estableciendo la propiedad espacio de nombres.

En el ejemplo de código siguiente se establece el espacio de nombres XML en https://www.contoso.com/.

<%@ WebService Language="C#" Class="Util" Debug=true%>
using System.Web.Services;
using System;

[WebService(Namespace="https://www.contoso.com/")]
public class Util: WebService 
<%@ WebService Language="VB" Class="Util"%>
Imports System.Web.Services
Imports System

<WebService(Namespace:="https://www.contoso.com/")> _
Public Class Util
    Inherits WebService

Definición de métodos de servicios web

Los métodos de una clase que implementa un servicio Web no tienen automáticamente la capacidad de comunicarse con el Web, pero con el servicio Web creado con ASP.NET, agregar esa función es muy sencillo. Para agregar esta función, aplique un atributo WebMethod a los métodos públicos. Los métodos de un servicio Web que pueden comunicarse a través de la Web se denominan métodos de servicios web.

Para declarar un método de servicio Web

  1. Agregue los métodos públicos a la clase que está implementando el servicio Web.

  2. Aplique el atributo WebMethod a los métodos públicos que desea haber asignado a las operaciones del servicio Web.

El ejemplo de código siguiente tiene dos métodos públicos, uno de los cuales es un método de servicio Web. El método Multiply es un método de servicio Web, porque tiene un atributo WebMethod aplicado a él.

<%@ WebService Language="C#" Class="Util" %>
using System.Web.Services;
using System;

[WebService(Namespace="https://www.contoso.com/")]
public class Util: WebService 
{
    [ WebMethod]    public long Multiply(int a, int b) 
    {
        return a * b;
    }
}
<%@ WebService Language="VB" Class="Util" %>

Imports System.Web.Services
Imports System

<WebService(Namespace:="https://www.contoso.com/")> 
Public Class Util 
    Inherits WebService
    < WebMethod()> _    Public Function Multiply(a As Integer, b As Integer) As Long
        Return a * b
    End Function
End Class

Vea también

Referencia

WebService Class
WebServiceAttribute Class
WebMethodAttribute Class

Conceptos

Conceptos básicos de servicio web XML de ASP.NET

Otros recursos

Servicios web XML con ASP.NET