103 votes

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

J’ai un ancien fichier WSDL et je veux créer un serveur basé sur ce fichier WSDL.

Le WSDL est généré à partir un ASMX (je suppose, mais je ne suis pas sûr).

Comment est-ce que je peux réaliser cela ?


question initiale où l’OP a pensé qu’il devait créer un client basé sur WSDL.

114voto

marc_s Points 321990

À l'aide de svcutil, vous pouvez créer des interfaces et des classes (contrats de données) à partir du WSDL.

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

Cela va créer 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 mettra en œuvre l'interface de service (IServiceInterface) - ou de plusieurs interfaces de service - et c'est votre instance de serveur.

Maintenant, une catégorie en elle-même n'aide pas vraiment encore vous aurez besoin pour héberger le service quelque part. Vous avez besoin pour créer votre propre ServiceHost instance qui héberge le service, configurer les systèmes d'extrémité et ainsi de suite - ou vous pouvez accueillir votre service à l'intérieur de IIS.

Marc

40voto

Cheeso Points 87022

Il y a de bonnes ressources là-bas si vous savez quoi chercher. Essayez le "Premier Contrat" et de la WCF. ou "WSDL", et WCF.

Voici une sélection:

32voto

Dennis Calla Points 221

Utilisation svcutil.exe avec l' /mc interrupteur pour générer les contrats WCF (c'est pas bien documenté). Cela va créer un fichier de code que vous pouvez ajouter à votre projet. Il contiendra toutes les interfaces et types de données, vous devez créer votre service. Je pense que vous pouvez modifier le chemin de sortie, mais si pas, vous trouverez le fichier dans le dossier avec svcutil.exe. La valeur par défaut lanuage est le c#, mais je pense (je n'ai jamais essayé), vous devez être en mesure de changer cela en utilisant /l:vb.

svcutil /mc "fichier WSDL chemin"

Si votre WSDL a l'appui de fichiers XSD passer ceux que les arguments après le WSDL.

svcutil /mc "fichier WSDL chemin" "XSD 1 chemin du fichier" "XSD 2 chemin de fichier" ... "XSD n chemin d'accès au fichier"

Puis créer une nouvelle classe qui est à votre service et à mettre en œuvre le contrat d'interface que vous venez de créer.

7voto

John Saunders Points 118808

Vous pouvez utiliser svcutil.exe pour générer le code client. Cela comprendrait la définition de contrat de service des contrats de données et des contrats de faute requis.

Ensuite, il suffit de supprimer le code de client : les classes qui implémentent les contrats de service. Vous devrez alors mettre vous-même, à votre service.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X