Comment utiliser le web service avec WSDL fichier?
ont été donné une URL vers un fichier WSDL, un morceau de c'est ici..ne sais pas si c'est pertinent une pièce ou pas. Je sais comment ajouter la référence web et importer l'espace de noms dans Visual Studio 2005.
Questions...comment puis-je transmettre mes valeurs? Comment puis-je coder en binaire-64? J'ai le methodname (GETP)...ne sais pas comment appeler ça comme une fonction pour passer des paramètres, ou si c'est même la bonne façon de le faire avec ce type de référence. Ont consommée .asmx fichiers précédemment.
<wsdl:message name="GETPResponse">
<wsdl:part name="GETPReturn" type="xsd:string" />
</wsdl:message>
<wsdl:message name="GETPRequest">
<wsdl:part name="BASE64DATA" type="xsd:base64Binary" />
</wsdl:message>
<wsdl:portType name="Dist">
<wsdl:operation name="GETP" parameterOrder="BASE64DATA">
<wsdl:input message="impl:GETPRequest" name="GETPRequest" />
<wsdl:output message="impl:GETPResponse" name="GETPResponse" />
</wsdl:operation>
</wsdl:portType>
OriginalL'auteur | 2009-07-30
Vous devez vous connecter pour publier un commentaire.
Suffit d'utiliser "Ajouter un Service Refrence" et pointer vers le fichier WSDL. Voir "Comment faire pour Consommer un Service Web".
J'ai omis de mentionner que je suis encore sur ASP.NET 2.0. Sont WCF extensions compatibles? Est-il un moyen pour cela que de plus en plus étroitement imite l' .asmx fichier?
Si vous êtes coincé avec ASP.NET 2.0, alors vous devriez utiliser la fonction "Ajouter une Référence Web" à la place. Il est similaire.
Ouais, j'ai compris. Quand j'ai importer l'espace de noms, il s'attache à "CompletedEventArgs" à la référence web. Je voudrais savoir comment faire pour appeler la fonction et de définir les paramètres dans base64binary encodage. merci.
OK..j'ai compris l'encodage. Maintenant, il suffit d'appeler la fonction. Toujours obtenir =CompletedEventArgs sur la déclaration d'espace de noms. ???
OriginalL'auteur John Saunders
Ce site a comment créer un fichier WSDL de la classe et de l'utiliser, ou comment référencer le service web à l'aide de Visual Studio web de référence: https://msdn.microsoft.com/en-us/library/ms155134.aspx
Aucune option n'a fonctionné pour moi. J'avais besoin de créer le fichier WSDL classe comme sur le site, mais la référence web ne fonctionne pas pour moi, ni seulement l'ajout de la classe de mon dossier App_Code et en essayant de les instancier. J'ai donc choisi de créer une assemblée de le WSDL de la classe, puis de référence de cette assemblée dans mon projet. C'était le seul moyen que j'ai pu obtenir toutes les classes utiles/méthodes s'offrent à moi. Voici mes étapes, du début à la fin, cela a fonctionné pour moi.
Vous assurer que vous avez le droit de l'URL en haut de votre ASMX.cs fichier de votre service web:
[WebService(Namespace = "http://localhost:99999/WebService1.asmx")]
Laissant comme valeur par défaut "tempuri.org" vous fera insupportable chagrin.
Obtenir le kit de développement logiciel Windows pour votre station de travail/serveur & installer.
Sur une ligne de commande, accédez WSDL, qui pour moi sur le Serveur 2012 était:
cd C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools
Ensuite, utilisez ceci:
wsdl /l:CS /protocol:SOAP http://localhost:99999/WebService1.asmx?wsdl
Vous pouvez ensuite procédez de l'une des 2 choses:
nouvelle Bibliothèque de classes Visual Studio projet, à la racine de la
solution. (Pour plus de détails, allez à
https://msdn.microsoft.com/en-us/library/cc175801(v=vs. 90).aspx et
passez à la section "Création d'un Projet pour le Proxy de l'Assemblée".) Signer le
de l'assemblée (les détails sur ce même site, la section "de la Signature et de la Construction
le Proxy de l'Assemblée"). (Je ne vous embêtez pas avec la sérialisation
les exceptions ou structure de trucs juste ces 2 articles, uniquement).
-OU- (plus facile)
Suffit d'utiliser le SCC pour construire votre assemblée:
Déplacer votre classe proxy pour la
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 dossier.
Lancement d'une ligne de commande et
cd
à ce dossier.Exécuter cette commande:
csc /t:library MyWebServiceProxyClassFile.cs /reference:System.Web.Services.dll /optimize
Évidemment, remplacer "MyWebServiceProxyClassFile" avec le nom de votre fichier de classe proxy. Il vous donnera un fichier DLL avec le même nom que la classe proxy.
MyServiceProxy\bin\Debug
dossier. (Ou accédez à C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 si vous l'avez laissé là, à partir de l'aide de CSC.)YourClass service = new YourClass();
Vous devriez voir le webmethods disponibles lorsque vous effectuez
service.
avec intellisense.Vous aurez probablement besoin d'ajouter ces paramètres:
(Ajouter
using System.Net;
vers le haut de votre classe à utiliser que la dernière.)Pour ceux qui disent que c'est le "vieux" ou "obsolète" manière de faire, je dis que cela a fonctionné pour moi, et nous voudrions dire à dire à Microsoft pour le faire fonctionner à l'aide de la référence web et nous n'aurions pas à faire de cette façon. D'ailleurs, c'est en grande partie de leur processus documenté, après tout, avec certains de mes propres conclusions. Et j'ai remarqué quelque chose d'autre - svcutil génère un de totalement différent, WCF-conformes à la classe de proxy, qui WSDL n'est pas, donc attention à ce que l'utilitaire vous utilisez réellement, ils ne sont PAS créés égaux.
Aussi, j'ai fait mon propre fichier de commandes pour la création d'une classe de proxy à partir d'un service web, puis la construction d'un assemblage en utilisant le SCC, comme j'ai ci-dessus:
Il est configuré pour s'exécuter sur le Serveur 2012 avec le SDK Windows installé. Vous pourriez exécuter sur n'importe quelle plate-forme si vous modifiez la place
wsdl
est trouvé à point à Visual Studio SDK dossier, si vous l'installer, ex:au lieu de cela NETFX dossier Outils.
Que vous pouvez l'utiliser par la première saisie de l'URL du service web, ex.
http://localhost:99999/WebService1.asmx
Lorsque la classe est générée, vous donner à ce programme le nom du fichier de classe, moins le
.cs
. Il doit également être le même que le nom de classe par défaut en haut de WebService1.asmx.cs, dans mon exemple.Il partira ensuite la classe de proxy et de l'assemblée fichier à la racine de C: pour vous.
Pour ceux qui souhaitent poursuivre la conversion de la ASMX dans un WCF interface, j'ai trouvé ceci: https://msdn.microsoft.com/en-us/library/vstudio/ms751529%28v=VS.100%29.aspx
qui avait l'air prometteur, qui vous a utiliser svcutil pour produire le proxy, je suis en supposant que vous l'ajoutez à un ASP.NET dossier App_Code (il n'est pas dit) et d'ajouter une référence de service à la ASMX URL du service web, mais pas beaucoup de détail/conseils sur la façon de nommer le contrat et où le mettre pour qu'
<client>
extrait de code dans le web.config, même si je crois qu'il va dans<system.ServiceModel>
.OriginalL'auteur vapcguy