Mon application doit parler à un service Web qui n'a pas de définition WSDL en ligne. Les développeurs m'ont cependant fourni un fichier WSDL.
Avec un WSDL public, Visual Studio peut générer ce code pour moi à l'aide de l'assistant de référence de service. Mais cela ne semble pas fonctionner sans WSDL public.
Comment générer le code pour parler à ce service Web à l'aide de ce fichier WSDL?
L'utilisation de WSDL.exe n'a pas fonctionné pour moi (m'a donné une erreur sur un type manquant), mais j'ai pu cliquer avec le bouton droit sur mon projet dans VS et sélectionner «Ajouter une référence de service». J'ai entré le chemin d'accès au fichier wsdl dans le champ Adresse et j'ai appuyé sur "Go". Cela semblait être en mesure de trouver tous les types appropriés et d'ajouter les classes directement à mon projet.
la source
Sur la note latérale: si vous avez tous les fichiers localement (non seulement le fichier wsdl mais également les fichiers xsd), vous pouvez appeler wsdl.exe de cette manière:
De cette façon, wsdl.exe peut résoudre toutes les dépendances localement et générer correctement la classe proxy.
Peut-être que cela fera gagner du temps à quelqu'un - cela résout l'erreur "type manquant" lorsque le service n'est pas disponible en ligne.
la source
Essayez l' outil de classe WSDL To Proxy fourni avec le SDK .NET Framework. Je ne l'ai jamais utilisé auparavant, mais il ressemble certainement à ce dont vous avez besoin.
la source
Il existe un Microsoft Doc pour créer votre
WCF
proxy à partir de la ligne de commande.Vous pouvez trouver votre copie locale de
wsdl.exe
dans un emplacement similaire à celui-ci:C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools
( En savoir plus ici )En fin de compte, vous
Command
devriez ressembler à ceci:la source
enregistrez le fichier sur votre disque, puis utilisez ce qui suit comme URL:
la source
Étant donné que la véritable URL de liaison pour le service Web se trouve dans le fichier, vous pouvez effectuer ces étapes simples à partir de votre ordinateur local:
1) Enregistrez le fichier sur votre ordinateur local par exemple:
2) Dans Visual Studio Cliquez avec le bouton droit sur votre projet> Choisissez Ajouter une référence Web, une boîte de dialogue s'ouvre.
3) Dans la zone URL, copiez l'emplacement du fichier local au-dessus de C: \ Documents and Settings [utilisateur] \ Desktop \ Webservice1.asmx, cliquez sur Suivant
4) Maintenant, vous verrez les fonctions apparaître, choisissez votre nom pour la référence, cliquez sur ajouter une référence
5) Vous avez terminé! vous pouvez commencer à l'utiliser comme espace de noms dans votre application, ne vous inquiétez pas que vous ayez utilisé un fichier local, car de toute façon la véritable URL du service se trouve dans le fichier à la section Liaison
la source