Les Web Service en ASP.NET

MVC3

Dans ce tutoriel, je vais vous montrer comment concevoir facilement un service Web ASP.net d'envoi de mails.

1. Qu'est ce qu'un service Web ? 

Un service Web est une classe mise à disposition des utilisateurs via internet et un serveur Web. Je vais prendre pour exemple, le groupe de technologies suivant soit Visual Studio 2010 (VB.NET), ASP.Net, et IIS.

Un service Web est composé d'une assembly, mais aussi d'un fichier de configuration (Web. config) et d'une page portant l'extension *.asmx. Ce qu'il faut savoir, c'est que les méthodes de vos classes peuvent retourner des objets, et c'est là que cela devient tout de suite plus complexe. En fait, le client et le serveur vont s'envoyer des données, en communiquant via le protocole SOAP de sérialisation XML. L'objet est sérialisé en un flux XML puis envoyé sur le réseau. Une fois reçu, il est dé-sérialisé pour être restitué en l'objet original.

Pour nous permettre de travailler avec une classe distante, Visual studio nous permet d'ajouter des « références de services » qui ne sont, en réalité, que des copies de notre classe distante avec ses méthodes. En effet, lors de l'exécution du code, elles sont prévues pour appeler la méthode distante. Elles permettent aussi la dé-sérialisation qui, pour opérer, doit renseigner l'assembly du flux sérialisé. On appelle souvent ces classes des classes proxy.

2. Création du service Web

Pour commencer nous allons créer notre service web. Je vous invite à ouvrir Visual Studio 2010 et à créer un nouveau projet "Web" puis "Application Web ASP.NET". Nous commencerons par concevoir notre service web en mode « système de fichier » puis nous le publierons ensuite sur notre serveur locale IIS.

Figure 1 - Création d'un nouveau projet.

NETAPSYS_SW_Figure_1

Visual Studio crée, par défaut, une arborescence de fichiers. Nous allons supprimer les fichiers "About.aspx" et "Default.aspx".

Figure 2 - Suppression des fichiers

NETAPSYS_SW_Figure_2_1 NETAPSYS_SW_Figure_2_2

Nous allons maintenant ajouter la classe du service web. Clic droit sur le projet, "Ajouter..." et "Nouvel élément...". Choisissez "Service Web" et renommez la classe.

Figure 3 - Création de la classse swSendMail

NETAPSYS_SW_Figure_3

Nous allons modifier cette classe pour supprimer la méthode "Hello Word" et ajouter notre méthode d'envoi de mail.

Figure 4 - Méthode "Hello World"

NETAPSYS_SW_Figure_4_1

Figure 5 - Création de la méthode d'envoi de mail.

NETAPSYS_SW_Figure_5_1

Pour que notre classe SMTP puisse envoyer des mails, il faut lui préciser des paramètres SMTP. Je vais donc modifier le fichier Web.config pour saisir ces paramètres.

Figure 6 - Modification du Web.config

NETAPSYS_SW_Figure_6_1

Notre service web est maintenant opérationnel. Je vous propose de le tester sans plus attendre, en pressant la touche F5 de votre clavier. La figure 7 apparaît dans votre navigateur web.

Figure 7 - Execution du Service Web

NETAPSYS_SW_Figure_7

Cette fenêtre vous expose toutes les méthodes de notre classe. Ici, nous n'en avons qu'une : « SendMail ». Cliquez sur le lien pour être redirigé vers la page permettant d'exécuter la méthode.

Figure 8 - Exécution du service Web (Procédure SendMail).

NETAPSYS_SW_Figure_8

Remplissez les champs de façon à pouvoir vous envoyer un email, puis cliquez sur le bouton « Appeler » pour voir s'afficher à l'écran le résultat sous forme de fichier XML.

Figure 8 - Résultat de l'exécution du service Web.

NETAPSYS_SW_Figure_9

Si votre email a bien été envoyé, la réponse est sans appel, vous devriez avoir la valeur « True » retournée. Dans le cas contraire, c'est que la configuration SMTP n'est pas correcte ou qu'au moment de votre envoi, la connexion a été interrompue.

3. Publication du service Web

Ouvrez la console du "Gestionnaire de Service Internet (IIS)".

NETAPSYS_SW_Figure_10

Développez le nœud racine, cliquez ensuite sur le dossier sites. Dans la marge de droite, cliquez sur le lien « Ajouter un site web ».

NETAPSYS_SW_Figure_11

Votre service est maintenant disponible à l'adresse http://localhost/swSendMail.asmx.

2 commentaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.