J'ai besoin de consommer un service Web. Ils m'ont envoyé le fichier WSDL. Que dois-je faire pour l'ajouter à mon site Web et commencer à l'utiliser comme proxy? (Si je le mets sur un répertoire virtuel, il peut être découvert, mais me permet-il de me connecter au vrai service Web?)
Je lancer Visual Studio, créer un projet Web (ou une application console - peu importe).
Pour .Net Standard:
S'il n'y a pas d'erreur, vous devez simplement définir le NameSpace que vous souhaitez utiliser pour accéder au service et celui-ci sera généré pour vous.
Pour .Net Core
Chacune des méthodes ci-dessus générera un client WCF simple et très basique que vous pourrez utiliser. Vous devriez trouver une classe "YourservicenameClient" dans le code généré.
À des fins de référence, le fichier cs généré peut être trouvé dans votre Obj/debug (ou version)/XsdGeneratedCode et vous pouvez toujours trouver les DLL dans le dossier TempPE.
Les services créés doivent avoir des méthodes pour chacune des méthodes définies dans le contrat WSDL.
Instanciez le client et appelez les méthodes que vous souhaitez appeler, c'est tout!
YourServiceClient client = new YourServiceClient();
client.SayHello("World!");
Si vous devez spécifier l'URL distante (sans utiliser celle créée par défaut), vous pouvez facilement le faire dans le constructeur du client proxy:
YourServiceClient client = new YourServiceClient("configName", "remoteURL");
où configName
est le nom du noeud final à utiliser (vous utiliserez tous les paramètres sauf l'URL), et le remoteURL
est une chaîne représentant l'URL de connexion (au lieu de celle contenue). dans la config).
En studio visuel.
En l'absence d'erreur, vous devriez pouvoir voir la référence de service dans le navigateur d'objets et toutes les méthodes associées.
Utilisez tilitaire WSDL.EXE pour générer un proxy de service Web à partir de WSDL.
Vous obtiendrez un long fichier source C # contenant une classe ressemblant à ceci:
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="MyService", Namespace="http://myservice.com/myservice")]
public partial class MyService : System.Web.Services.Protocols.SoapHttpClientProtocol {
...
}
Dans votre code consommateur de service Web côté client:
Si vous voulez ajouter une référence à wsdl dans le projet . Net Core , il n'existe pas d'option "Ajouter une référence Web".
Pour ajouter la référence wsdl, accédez à Explorateur de solutions, cliquez avec le bouton droit de la souris sur l'élément de projet Références, puis cliquez sur l'option Ajouter un service connecté .
Cliquez ensuite sur 'Référence du service Web Microsoft WCF':
Entrez le chemin du fichier dans la zone de texte URI et importez le WSDL:
Il générera un client WCF simple et très basique et vous pourrez l'utiliser de la manière suivante:
YourServiceClient client = new YourServiceClient();
client.DoSomething();