Générer du code C# à partir d’un projet de service Web SOAP
Cet exemple illustre comment générer un service web SOAP avec MapForce. Vous allez générer du code de programme C# à partir d’un exemple de projet MapForce disponible à l’emplacement suivant : <Documents>\Altova\MapForce2026\MapForceExamples\Tutorial\Query Person database.mfp. Ce projet met en place un service web SOAP qui permet d'exposer deux opérations : getPerson et putPerson. Ce service web communique en arrière-plan avec une base de données SQLite pour extraire ou ajouter des détails de personne, respectivement, par le biais des opérations ci-dessus. Pour consulter un exemple de la création de ce type de projets dans MapForce, voir Créer des projets de service Web à partir de fichiers WSDL.
Cet exemple utilise Visual Studio 2015 pour compiler le code C# généré. La solution sera déployée sur Internet Information Services (IIS) 10 avec ASP.NET activé.
Pour une plus grande simplicité, cet exemple utilise une configuration de serveur Web de base et n'est pas obligatoire. Dans un environnement de production, vous pouvez souhaiter d'utiliser une autre approche que celle exigée par les spécifications de votre serveur Web, les polices de sécurité dans votre entreprise et d'autres facteurs.
Pour appeler le service Web SOAP, cet exemple utilise XMLSpy Enterprise Edition. Si vous ne disposez pas de XMLSpy, il faudra qu'un client SOAP testera le service Web, ou, en alternative, écrire un code de programme qui peut appeler le service Web. Vous pouvez également tester le service Web en créant un appel de service Web dans MapForce.
Note : Si vous utilisez IIS 7.x, vous devrez peut-être d’abord installer la fonctionnalité Windows « Compatibilité de la métabase IIS et de la configuration IIS 6 ».
Étape 1 : Préparer le fichier query.wsdl
Cet exemple de service web provient du fichier WSDL suivant : <Documents>\Altova\MapForce2026\MapForceExamples\Tutorial\query.wsdl. Par défaut, le fichier query.wsdl définit les détails du service pour C# et Java dans deux sections distinctes, dont l’une est commentée. C'est pourquoi, avant de générer du code C#, localisez la section suivante dans le fichier query.wsdl et assurez-vous qu'elle n'est pas commentée :
<service name="WS2DB"> |
Veuillez également vous assurer que la section suivante (uniquement applicable à Java) est commentée :
<!--<service name="WS2DB"> |
Étape 2 : Générer du code C# et le compiler
Exécuter MapForce et ouvrir le projet "Query Person database.mfp" depuis le dossier <Documents>\Altova\MapForce2026\MapForceExamples\Tutorial\. Cliquez avec le bouton droit sur le projet dans la fenêtre Projet, puis sélectionnez Générer du code dans | C#. MapForce génère un code de programme et affiche le résultat dans la fenêtre de Messages :

Par défaut, le code sera généré dans un sous-répertoire appelé "output" et relatif au répertoire du projet. En ce qui concerne notre tutoriel, nous allons laisser les paramètres par défaut tels qu'ils sont. Néanmoins, si vous souhaitez changer le répertoire de sortie, voir Définir les paramètres de génération de code.
Lancez Visual Studio et ouvrez la solution générée.
Vous devrez peut-être exécuter Visual Studio en tant qu’administrateur. De plus, cette solution exemple doit être compilée en tant qu’application 32 bits, comme indiqué ci-dessous. |
Vous pouvez créer la solution comme suit :
•Dans le menu Build, cliquez sur Build Solution (Ctrl+Maj+B).
Étape 3 : déployer le service web sur IIS
Dans la fenêtre Explorateur de solutions de Visual Studio, cliquez avec le bouton droit sur le projet services-Site/WS2DB et sélectionnez « Publier l'application Web » dans le menu contextuel.

Lorsque vous êtes invité à sélectionner une cible de publication, sélectionnez « Personnalisé ».

Lorsque vous êtes invité à entrer un nom de profil, entrez une valeur facile à reconnaître ultérieurement, par exemple « iis ».

Sélectionnez « Système de fichiers » comme méthode de publication et choisissez un dossier de destination (dans cet exemple, « C:\WS2DB »).

Cliquez sur Suivant. Veuillez conserver les paramètres par défaut.

Cliquez sur Suivant, puis sur Publier.

La fenêtre Sortie affiche le résultat.

Étape 4 : configurer l’application dans le Gestionnaire IIS
Vous pouvez ajouter la nouvelle application à IIS comme suit :
1.Dans IIS, cliquez avec le bouton droit sur Sites | Site Web par défaut, puis sélectionnez Ajouter application dans le menu contextuel.
2.Sous « Nom d'alias », entrez un nom permettant d’identifier votre application web (« services », dans cet exemple).
3.Sous « Chemin d’accès physique », entrez le chemin d'accès où l'application a été précédemment publiée (« C:\WS2DB », dans cet exemple).

De plus, pour cet exemple particulier, il est nécessaire que les applications 32 bits soient activées pour le pool dans lequel l’application s’exécute.
1.Dans IIS, cliquez avec le bouton droit sur le pool d’applications où l’application a été déployée, puis sélectionnez Paramètres avancés dans le menu contextuel.
2.Sous Activer applications 32 bits, sélectionnez l’option True.

Enfin, comme cet exemple lit des données à partir de la base de données SQLite, le pool d’applications IIS doit disposer des autorisations nécessaires pour accéder au fichier de base de données. À moins que vous n’ayez modifié le projet MapForce, la base de données est disponible à l’emplacement suivant : <Documents>\Altova\MapForce2026\MapForceExamples\Tutorial\people.sqlite.
1.Dans l’Explorateur Windows, cliquez avec le bouton droit sur le fichier people.sqlite et sélectionnez Propriétés.
2.Dans l’onglet Sécurité, cliquez sur Modifier.
3.Cliquez sur Ajouter, puis entrez le nom de l’objet comme suit : IIS AppPool\DefaultAppPool. Remplacez « DefaultAppPool » par une autre valeur si vous avez déployé l’application dans un pool autre que celui par défaut.
4.Accordez les autorisations requises, puis cliquez sur Appliquer. (Dans cet exemple, l’autorisation de lecture et d'écriture du fichier de base de données est requise.)

Pour vérifier si le service web est opérationnel, accédez à l’URL suivante : http://localhost/WS2DB.

Si les détails du service Web s’affichent dans le navigateur, vous pouvez passer à l'appel du service web à partir d’une application cliente, comme indiqué ci-dessous.
Appel du service web
Si vous avez suivi les étapes ci-dessus à la lettre, le WSDL du service web est disponible à l’adresse http://localhost/WS2DB/query.wsdl. Pour appeler le service web service que nous venons de déployer, nous allons utiliser XMLSpy, bien que vous puissiez également utiliser d’autres clients SOAP.
Note : Il est recommandé d’accéder au WSDL authentique à l’adresse http://localhost/WS2DB/query.wsdl plutôt que d’utiliser la méthode de requête « ?wsdl». Cette dernière peut renvoyer un fichier WSDL dépourvu de certaines fonctionnalités de l’original ou qui ne fonctionne pas du tout.
Exécuter XMLSpy Enterprise Edition. Dans le menu SOAP, cliquez sur Create New SOAP Request. Lorsque vous y êtes invité, saisissez le WSDL du service web (dans cet exemple, http://localhost/WS2DB/query.wsdl).

Cliquez sur OK. Lorsque vous êtes invité à sélectionner une opération SOAP, sélectionnez getPerson.

XMLSpy génère une requête d'échantillon comme celle ci-dessous.
<?xml version="1.0" encoding="UTF-8"?> |
Repérez l’élément <Query> de la requête et remplacez « String » par la valeur que vous souhaitez fournir comme entrée au service web. Comme indiqué précédemment, ce service web récupère les informations personnelles à partir d’une base de données SQLite. Dans le cadre de cet exemple, pour que l’appel récupère effectivement des données, « String » doit être remplacé par « Ro » (en d'autres termes, seules les personnes dont le prénom ou le nom contient « Ro » seront récupérées). La nouvelle requête se présente désormais comme suit :
<?xml version="1.0" encoding="UTF-8"?> |
Vous pouvez maintenant envoyer la requête ci-dessus au serveur. Dans le menu SOAP, cliquez sur Send Request to Server. La boîte de dialogue Paramètres de Requête SOAP s'ouvre.

Cliquez sur OK. XMLSpy initie l'appel et retourne la réponse dans l'éditeur. L'image ci-dessous illustre une réponse réussie.

En utilisant la même approche que décrite ci-dessus, vous pouvez aussi appeler l’opération putPerson exposée par ce service web. Pour des instructions étape par étape, voir la section "Appeler le service Web" dans le tutoriel Java. Seule l’URL WSDL est différente dans le tutoriel Java ; toutes les autres instructions pour appeler le service web sont identiques.
Dépannage
Le tableau suivant répertorie les problèmes courants que vous pourriez rencontrer lors de la création ou de l’appel du service web, ainsi que leur solution.
Problème | Solution |
|---|---|
L’appel du service web renvoie l'erreur suivante :
Le fournisseur <...> n’est pas enregistré sur l’ordinateur local. | 1.Compilez la solution C# dans Visual Studio en tant qu’application 32 bits. 2.Déployez-la sur IIS. 3.Cliquez avec le bouton droit sur le pool d’applications IIS dans lequel vous avez déployé l'application, puis sélectionnez Paramètres avancés. 4.Sous Activer applications 32 bits, sélectionnez True. |
L’appel du service web renvoie l'erreur suivante :
Le moteur de base de données <...> ne peut pas ouvrir le fichier '<chemin>\people.sqlite'. Il est déjà ouvert en exclusivité par un autre utilisateur ou vous devez disposer des autorisations nécessaires pour afficher ses données. | •Accordez au pool d’applications IIS l’autorisation de lire le fichier de base de données SQLite, voir « Étape 4 : configurez l’application dans le Gestionnaire IIS » ci-dessus. |
L’appel du service web renvoie l'erreur suivante :
L’opération doit utiliser une requête pouvant être mise à jour. | •Accordez au pool d’applications IIS l’autorisation d’écrire le fichier de base de données SQLite, voir « Étape 4 : configurez l’application dans le Gestionnaire IIS » ci-dessus. |