Procédure pas à pas : création d'un service Web XML de base à l'aide d'ASP.NET

Cette rubrique est spécifique à une technologie existante. Les services Web XML et les clients du service Web XML doivent à présent être créés à l'aide de Windows Communication Foundation.

Le développement d'un service Web XML à l'aide d'ASP.NET commence avec les étapes suivantes :

  1. Créez un fichier avec une extension .asmx et dans ce fichiers, déclarez un service Web à l'aide d'une directive @WebService

  2. Créez une classe qui implémente le service Web. La classe peut éventuellement dériver de la classe WebService.

  3. Éventuellement, appliquez l'attribut WebServiceAttribute à la classe qui implémente le service Web.

  4. Définissez les méthodes de service Web qui composent les fonctionnalités du service Web.

Déclarer un service Web

Lorsque vous créez un service Web XML dans ASP.NET, vous placez la directive @ WebService requise en haut d'un fichier texte avec une extension .asmx. La présence du fichier .asmx et de la directive @ WebService corrèle l'adresse URL du service Web XML avec son implémentation. Ensuite, vous implémentez la classe de service Web XML qui définit les méthodes et types de données visibles par les clients de service Web XML. Enfin, vous ajoutez votre logique de service Web XML à ces méthodes pour traiter les demandes de service Web XML et renvoyer des réponses. La classe de service Web XML que vous définissez peut être incluse directement dans le fichier .asmx ou dans un fichier séparé. Si vous utilisez un fichier séparé, il doit être compilé dans un assembly. Facultativement, vous pouvez appliquer un attribut WebService à la classe qui implémente le service Web XML. La classe qui implémente le service Web XML peut dériver de la classe WebService.

Pour déclarer un service Web dont l'implémentation réside dans le même fichier

  1. Ajoutez une directive @ WebService en haut d'un fichier avec une extension .asmx en spécifiant la classe qui implémente le service Web et le langage de programmation utilisés dans l'implémentation.

    L'attribut Class peut avoir pour valeur une classe dans qui réside le même assembly que la directive @ WebService ou une classe dans un assembly séparé. Si la classe réside dans un assembly distinct, celui-ci doit être placé dans le répertoire \Bin de l'application Web où réside le service Web. L'attribut Language peut avoir les valeurs C#, VB et JS, qui font respectivement référence à C#, Visual Basic .NET et JScript .NET.

    L'exemple de code suivant définit l'attribut Language de la directive @ WebService et donne à l'attribut Class la valeur Util, qui réside dans le même fichier.

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

Pour déclarer un service Web dont l'implémentation réside dans un assembly

  1. Ajoutez une directive @ WebService en haut d'un fichier avec une extension .asmx en spécifiant la classe qui implémente le service Web, l'assembly qui contient l'implémentation et le langage de programmation utilisés dans l'implémentation. Si vous utilisez un fichier séparé, il doit être compilé dans un assembly.

    La directive @ WebService suivante est la seule ligne dans un fichier avec une extension .asmx et spécifie que la classe MyName.MyWebService réside dans l'assembly MyAssembly dans le répertoire \Bin de l'application Web qui héberge le service Web.

    <%@ WebService Language="C#" Class="MyName.MyWebService,MyAssembly" %>
    
    <%@ WebService Language="VB" Class="MyName.MyWebService,MyAssembly" %>
    
    7hs6sw69.note(fr-fr,VS.100).gifRemarque :
    Si vous ne spécifiez pas d'assembly dans la directive @ WebService, ASP.NET fouille la liste d'assemblys dans le répertoire \Bin de l'application Web qui héberge le service Web lors du premier accès au service Web. Par conséquent, vous améliorerez la performance au premier accès en fournissant le nom de l'assembly.

Dériver de la classe WebService

Les classes qui implémentent un service Web créé à l'aide d'ASP.NET peuvent éventuellement dériver de la classe WebService pour accéder aux objets ASP.NET communs, tels que Application, Session, User et Context.

Pour dériver de la classe WebService et accéder aux objets ASP.NET communs

<%@ 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

Appliquer l'attribut WebService

Appliquez l'attribut WebService facultatif à une classe qui implémente un service Web pour définir l'espace de noms XML par défaut pour le service Web, originairement est http://tempuri.org, ainsi qu'une chaîne décrivant le service Web.

Il est fortement recommandé que cet espace de noms par défaut, http://tempuri.org, soit modifié avant le lancement public du service Web XML. Ceci est important parce que le service Web XML doit être distingué d'autres services Web XML qui peuvent utiliser par inadvertance l'espace de noms par défaut (<http://tempuri.org/>).

Pour définir l'espace de noms XML dont un service Web est membre

  1. Appliquez un attribut WebService à la classe qui implémente le service Web, en définissant la propriété Namespace.

L'exemple de code suivant attribue à l'espace de noms XML la valeur 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

Définir les méthodes de service Web

Les méthodes d'une classe qui implémente un service Web n'ont pas automatiquement la capacité de communiquer sur le Web, mais avec les services Web créés à l'aide d'ASP.NET, il est très simple d'ajouter cette fonction. Pour ajouter cette fonction, appliquez un attribut WebMethod aux méthodes publiques. Les méthodes d'un service Web qui peuvent communiquer sur le Web sont appelées des méthodes de service Web.

Pour déclarer une méthode de service Web

  1. Ajoutez des méthodes publiques à la classe qui implémente le service Web.

  2. Appliquez l'attribut WebMethod aux méthodes publiques que vous souhaitez mapper aux opérations de service Web.

L'exemple de code suivant a deux méthodes publiques, dont l'une est une méthode de service Web. La méthode Multiply est une méthode de service Web Service parce qu'un attribut WebMethod lui est appliqué.

<%@ 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

Voir aussi

Référence

WebService Class
WebServiceAttribute Class
WebMethodAttribute Class

Concepts

Notions de base des services Web XML ASP.NET

Autres ressources

Services Web XML utilisant ASP.NET