2010-03-31 6 views

Répondre

0

Il n'y a pas de différence entre WSDL 1.1 et WSDL 2.0 pour wsdl.exe. J'ai juste une erreur dans le fichier .wsdl. Ce code:

<message name='PurchaseResponse'> 
    <part name='result' element='xsd:string'/> 
</message> 

doit être:

<message name='PurchaseResponse'> 
    <part name='result' type='xsd:string'/> 
</message> 
0

En supposant que vous utilisez VS 2008 Faites un clic droit sur les références dossier dans votre projet Sélectionnez « Ajouter une référence Web ... » Entrez l'URL de votre webservice Au nom de référence Web type de zone de texte dans la façon dont vous voulez pour le référencer. Donc pour un inventaire Type d'extension "Inventaire".

Pour créer l'objet dans le code que vous utilisez Inventory.ProductSoapClient client = new Inventory.ProductSoapClient()

Pour appeler une méthode en vous Webservice client.Procédé();

+0

je peux ajouter une référence Web, mais VS ne crée une classe proxy pour accéder à des méthodes de service. Si j'ajoute référence "Inventaire" je n'ai pas de classe Inventaire ou etc. Le fait est que WSDL n'est pas un service? WSDL à la fin de l'URL c'est juste un fichier .wsdl au format WSDL 1.1. Je pense que VS2008 attendait WSDL 2.0 de moi – ck3g

0

J'ai installé .NET Framework 1.1 et SDK 1.1. Juste pour le test, j'ai pensé que cela peut m'aider, parce que .NET 1.1 fonctionne avec WSDL 1.1 (SDK 1.1 et WSDL 1.1 est juste une coïncidence, ça ne signifie pas ce que SDK 1.1 pour WSDL 1.1 et/ou SDK 2.0 pour WSDL 2.0) J'ai enregistrer le message d'erreur puis dans le cas d'utiliser wsdl.exe du SDK 2.0

Le message d'erreur sonne comme: Erreur: L'attribut d'élément n'est pas autorisé sur les parties de message codées. La partie erronée est nommée 'result' dans le message 'PurchaseResponse'.

Une partie du code est:

<message name='PurchaseResponse'> 
    <part name='result' element='xsd:string'/> 
</message> 
Questions connexes