Comment utiliser un fichier WSDL pour créer un service WCF (ne pas faire d'appel)

j'ai un vieux fichier WSDL et je veux créer un serveur basé sur ce fichier WSDL.

la WSDL est générée à partir D'un ASMX (je suppose mais je ne suis pas sûr).

Comment puis-je y parvenir ?


question originale où L'OP a pensé qu'il avait besoin de créer un client basé sur le WSDL.

94
demandé sur Community 2009-06-04 16:14:16

5 réponses

en utilisant svcutil, vous pouvez créer des interfaces et des classes (contrats de données) à partir de la WSDL.

svcutil your.wsdl (or svcutil your.wsdl /l:vb if you want Visual Basic)

cela créera un fichier appelé" votre.cs" en C# (ou "votre.vb" VB.NET) qui contient tous les éléments nécessaires.

maintenant, vous devez créer une classe "MyService" qui implémentera L'interface de service (IServiceInterface) - ou les différentes interfaces de service - et c'est votre instance de serveur.

maintenant une classe par lui-même n'aide pas vraiment encore vous aurez besoin pour héberger le service quelque part. Vous avez besoin soit de créer votre propre instance ServiceHost qui héberge le service, configure les endpoints et ainsi de suite - ou vous pouvez héberger votre service dans IIS.

109
répondu marc_s 2016-04-19 14:55:20

Il y a de bonnes ressources là-bas si vous savez quoi chercher. Essayez "Contrat D'abord" et WCF. ou "WSDL First" et WCF.

voici une sélection:

40
répondu Cheeso 2009-06-04 13:37:22

utiliser svcutil.exe avec le commutateur /sc pour générer les contrats WCF. Cela va créer un fichier de code que vous pouvez ajouter à votre projet. Il contiendra toutes les interfaces et les types de données dont vous avez besoin pour créer votre service. Changez l'emplacement de la sortie en utilisant le commutateur /o , ou vous pouvez trouver le fichier dans le dossier où vous avez lancé svcutil.EXE. Le langage par défaut est C# mais je pense (Je ne l'ai jamais essayé) que vous devriez être capable de changer cela en utilisant /l:vb .

svcutil /sc "WSDL file path"

si votre WSDL supporte des fichiers XSD, passez-les comme arguments après la WSDL.

svcutil /sc "WSDL file path" "XSD 1 file path" "XSD 2 file path" ... "XSD n file path"

puis créer une nouvelle classe qui est votre service et mettre en œuvre l'interface de contrat que vous venez de créer.

28
répondu Dennis Calla 2016-11-14 10:53:41

vous pouvez utiliser svcutil.exe pour générer le code client. Cela inclurait la définition du contrat de service et tous les contrats de données et les contrats de défaillance requis.

ensuite, il suffit de supprimer le code client: classes qui mettent en œuvre les contrats de service. Vous aurez alors besoin de les mettre en œuvre vous-même, à votre service.

7
répondu John Saunders 2009-06-04 13:32:03

en utilisant L'outil" Ajouter une référence de Service "dans Visual Studio, vous pouvez insérer l'adresse comme suit:

fichier:///chemin/vers/wsdl/fichier.wsdl

et il se chargera correctement.

2
répondu Vagner Gon 2017-08-08 13:37:41