2009-01-07 8 views
0

Je pointe l'utilitaire WSDL de ligne de commande .Net fourni avec Visual Studio 2005 sur un service Web implémenté en Java (sur lequel je n'ai aucun contrôle) et il recrée l'erreur suivante: Pourtant si je pointe Visual Studio 2005 lui-même au service via la boîte de dialogue Ajouter une référence Web, il génère une classe proxy pour moi très bien. J'utilise l'utilitaire WSDL pour générer tous mes autres proxys de service (même si un ancien émet beaucoup d'avertissements).Erreur de l'utilitaire de ligne de commande WSDL .Net

Actuellement, je pointe l'utilitaire WSDL sur les URL des services Web déployés. Tous ont été développés en Java.

Je veux utiliser l'utilitaire de ligne de commande WSDL dans le processus de construction pour m'assurer que j'ai le code proxy le plus à jour chaque fois que je compile.

Répondre

2

Essayez spécifiant l'option protocole SOAP12

/protocole: protocole (as show on MSDN)

Spécifie le protocole à mettre en œuvre. Vous pouvez spécifier SOAP (par défaut), HttpGet, HttpPost ou un protocole personnalisé spécifié dans le fichier de configuration. Lorsque vous utilisez l'option/parameters, cette valeur est l'élément et contient une chaîne.

Si cela ne vous aide pas alors .......

de Visual Studio « Ajouter une référence Web » appelle le WSDL.exe lors de l'ajout d'une référence Web. Fondamentalement, il ya no difference, autre que le contrôle que vous retenez lors de l'exécution de la commande WSDL.exe à partir de la ligne de commande. Je suppose que l'un de vos arguments est incorrect ou différent de celui que Visual Studio est en train de paramétrer.

Pour tester cela, vous devez comparer la sortie des 2 fichiers XSD différents qui sont générés, ce qui vous donnera une idée de ce qui ne va pas (comme Klathzazt l'a suggéré).

Bonne chance

+0

/protocole: soap12 semble avoir résolu le problème. Merci. – orj

0

Est-ce un fichier XSD? les fichiers ont des dépendances. Téléchargez les fichiers de dépendance et placez-les côte à côte avec le XSD que vous avez téléchargé. Je suppose que Visual Studio peut récupérer des dépendances.

Si cela ne résout pas le problème, veuillez fournir plus de détails.

0

j'ai pu se débarrasser de la cette erreur en décorant le Service (béton) avec le ServiceBehavior, et en lui donnant un espace de nommage.

using System.ServiceModel; 

[ServiceBehavior(Name = "MyConcreteServiceName", Namespace = "http://www.mycompany.com/services/")] 
public class MyConcreteService: IMyService 
{ 
} 

REMARQUE: Set via ServiceBehavior attribut sur la classe de service (et non le contrat (interface))

Au lieu de cela:

<wsdl:definitions name="MyConcreteServiceName" targetNamespace="http://tempuri.org/"> 

Je suis arrivé ceci:

<wsdl:definitions name="MyConcreteServiceName" targetNamespace="http://www.mycompany.com/services/"> 
Questions connexes