Résoudre les problèmes liés aux tutoriels Prise en main de Windows Communication Foundation
Cet article fournit des solutions aux problèmes et erreurs les plus courants auxquels vous pouvez être confronté lorsque vous suivez les étapes du Tutoriel : Prise en main des applications Windows Communication Foundation.
Problèmes courants
Je ne trouve pas les fichiers projet sur mon disque dur.
Visual Studio enregistre les fichiers projet sous C:\Users\<nom d’utilisateur>\source\repos.
Je ne trouve pas le fichier App.config généré par Svcutil.exe.
Dans Visual Studio, la fenêtre Ajouter un élément existant n’affiche par défaut que les fichiers portant les extensions suivantes :
- .cs
- .resx
- .settings
- .xsd
- .wsdl
Pour afficher tous les types de fichiers, sélectionnez Tous les fichiers (*.*) dans la liste déroulante située en bas à droite de la fenêtre Ajouter un élément existant.
Erreurs courantes
Compiler l’application de service
Erreur BC30420 - 'Sub Main' est introuvable dans 'GettingStartedHost.Module1'.
Le point d’entrée est incorrect pour l’application Visual Basic. Apportez la modification suivante :
- Dans la fenêtre Explorateur de solutions, sélectionnez le dossier GettingStartedHost, puis, dans le menu contextuel, sélectionnez Propriétés. a. Dans la fenêtre GettingStartedHost, accédez à Objet de démarrage et sélectionnez Service.Program (ou le point d’entrée de votre application) dans la liste. b. Dans le menu principal, sélectionnez Fichier>Enregistrer tout.
Exécuter l’application de service
HTTP n’a pas pu inscrire l’URL 'http://+:8000/GettingStarted/CalculatorService'. Le processus n'a pas de droits d'accès à cet espace de noms.
Pour un accès approprié, démarrez le processus hébergeant le service Windows Communication Foundation (WCF) à l’aide de privilèges administratifs :
- Pour Visual Studio : sélectionnez le programme Visual Studio dans le menu Démarrer, puis choisissez Plus>Exécuter en tant qu’administrateur dans le menu contextuel.
- Pour une fenêtre de console : sélectionnez Invite de commandes dans le menu Démarrer, puis choisissez Plus>Exécuter en tant qu’administrateur dans le menu contextuel.
- Pour l’Explorateur Windows : sélectionnez l’exécutable, puis choisissez Exécuter en tant qu’administrateur dans le menu contextuel.
Compiler l’application cliente
Compilation de l’application cliente : 'CalculatorClient' ne contient pas de définition pour '<nom de méthode>' et aucune méthode d’extension '<nom de méthode>' acceptant un premier argument de type 'CalculatorClient' n’a été trouvée (vous manque-t-il une directive using ou une référence d’assembly ?)
Seules les méthodes que vous marquez avec l’attribut ServiceOperationAttribute
sont exposées publiquement. Si vous omettez l’attribut ServiceOperationAttribute
d’une méthode dans l’interface ICalculator
, vous recevez ce message d’erreur lors de la compilation.
Le nom de type ou d’espace de noms 'CalculatorClient' est introuvable (vous manque-t-il une directive using ou une référence d’assembly ?)
Vous recevez cette erreur si vous n’ajoutez pas le fichier generatedProxy.cs (ou generatedProxy.vb) à votre projet client lorsque vous les avez générés avec l’outil Svcutil.exe.
Exécution de l’application cliente
Exception non prise en charge : System.ServiceModel.EndpointNotFoundException : Connexion impossible à 'http://localhost:8000/GettingStarted/CalculatorService'. Code d'erreur TCP 10061 : Aucune connexion n'a pu être établie car l'ordinateur cible l'a refusée activement.
Cette erreur se produit si vous exécutez l’application cliente sans avoir préalablement démarré le service. Commencez par exécuter l’application hôte pour démarrer le service, puis exécutez l’application cliente.
Utiliser l’outil Svcutil.exe
'Svcutil' n’est pas reconnu en tant que programme exécutable, fichier de commandes ou commande interne ou externe.
Svcutil.exe doit figurer dans le chemin d’accès système. La solution la plus simple consiste à utiliser l’invite de commandes Visual Studio. Dans le menu Démarrer, sélectionnez le répertoire Visual Studio <version>, puis Invite de commandes développeur pour VS <version>. Cette invite de commandes affecte au chemin d’accès système les emplacements corrects de tous les outils livrés avec Visual Studio.
Exécuter l’application cliente et l’application de service
System.ServiceModel.Security.SecurityNegotiationException : Échec de la négociation de sécurité SOAP avec 'http://localhost:8000/GettingStarted/CalculatorService' pour la cible 'http://localhost:8000/GettingStarted/CalculatorService'
Cette erreur se produit sur un ordinateur appartenant à un domaine qui ne bénéficie d’aucune connectivité réseau. Connectez votre ordinateur au réseau ou désactivez la sécurité à la fois pour le service et le client.
Pour désactiver la sécurité :
Pour le service, remplacez le code qui crée l’élément
WSHttpBinding
par le code suivant :// Step 3: Add a service endpoint. selfhost.AddServiceEndpoint(typeof(ICalculator), new WSHttpBinding(SecurityMode.None), "CalculatorService");
Pour le client, accédez au fichier de configuration et procédez comme suit pour mettre à jour l’élément <security> sous l’élément <binding> :
<binding name="WSHttpBinding_ICalculator"> <security mode="None" /> </binding>
Voir aussi
Prise en main des applications WCF
Guide de démarrage rapide sur la résolution des problèmes liés à WCF
Résolution des problèmes d’installation