Résoudre les problèmes liés aux références Windows Communication Foundation (WCF) ou WCF Data Services dans Visual Studio
S’applique à : Visual Studio
Cet article répertorie les solutions aux problèmes courants qui peuvent se produire lorsque vous travaillez avec des références à Windows Communication Foundation (WCF) ou Services de données WCF dans Visual Studio.
Si vous souhaitez mettre à jour ou supprimer une référence de service, consultez Ajouter, mettre à jour ou supprimer une référence de service de données WCF.
Erreur lorsqu’aucune adresse de service n’est fournie
Lorsque vous sélectionnez le bouton Go sans adresse, vous pouvez voir un message d’erreur indiquant « Entrez l’adresse d’un service ». Pour résoudre ce problème, identifiez l’adresse du service et entrez-la.
- S’il s’agit d’un service dans votre solution, vous pouvez utiliser le bouton Découvrir pour le rechercher et le sélectionner, puis réessayer le bouton Aller.
- S’il s’agit d’un service hébergé quelque part sur Internet, ajoutez-le en suivant les instructions de la section Ajouter une référence de service WCF.
Erreur lors du renvoi de données à partir d’un service
Lorsque vous renvoyez un DataSet
ou DataTable
d’un service, vous pouvez recevoir une exception « Le quota de taille maximale pour les messages entrants a été dépassé ». Par défaut, la propriété MaxReceivedMessageSize
de certaines liaisons est définie sur une valeur relativement faible pour limiter l’exposition aux attaques par déni de service. Vous pouvez augmenter cette valeur pour empêcher l’exception. Pour plus d’informations, consultez MaxReceivedMessageSize.
Pour résoudre ce problème :
- Dans l’Explorateur de solutions, double-cliquez sur le fichier app.config pour l’ouvrir.
- Recherchez la propriété
MaxReceivedMessageSize
et remplacez-la par une valeur supérieure.
Impossible de trouver un service dans ma solution
Lorsque vous sélectionnez le bouton Découvrir dans la boîte de dialogue Ajouter des références de service, un ou plusieurs projets de bibliothèque de services WCF dans la solution n’apparaissent pas dans la liste des services. Ce problème peut se produire si une bibliothèque de services a été ajoutée à la solution, mais n’a pas encore été compilée.
Pour résoudre ce problème :
- Dans l’Explorateur de solutions, faites un clic droit sur le projet bibliothèque de services WCF.
- Sélectionnez Générer.
Erreur lors de l’accès à un service via un bureau à distance
Lorsqu’un utilisateur accède à un service WCF hébergé sur le web via une connexion Bureau à distance et que l’utilisateur n’a pas d’autorisations d’administration, l’authentification NTLM est utilisée. Si l’utilisateur n’a pas d’autorisations d’administration, l’utilisateur peut recevoir le message d’erreur suivant : « La requête HTTP n’est pas autorisée avec le schéma d’authentification client « Anonyme ». L’en-tête d’authentification reçu du serveur était 'NTLM' ».
Pour résoudre ce problème :
- Dans le projet de site web, ouvrez les pages Propriétés.
- Dans l’onglet Options de démarrage, désactivez la case Authentification NTLM.
Notes
Vous devez désactiver l’authentification NTLM uniquement pour les sites web qui contiennent exclusivement des services WCF. La sécurité des services WCF est gérée par le biais de la configuration dans le fichier web.config. Cela rend l’authentification NTLM inutile.
Le paramètre Niveau d’accès pour les classes générées n’a aucun effet
Le réglage de l’option Niveau d’accès pour les classes générées de la boîte de dialogue Configurer les références de service sur Interne ou Ami ne fonctionne pas toujours. Même si l’option semble être définie dans la boîte de dialogue, les classes de support résultantes sont générées avec un niveau d’accès de Public
. Il s’agit d’une limitation connue de certains types, tels que ceux sérialisés à l’aide du XmlSerializer.
Erreur de débogage du code de service
Lorsque vous entrez dans le code d’un service WCF à partir du code client, vous pouvez recevoir une erreur liée à des symboles manquants. Cela peut se produire lorsqu’un service qui faisait partie de votre solution a été déplacé ou supprimé de la solution.
Lorsque vous ajoutez d’abord une référence à un service WCF qui fait partie de la solution actuelle, une dépendance de build explicite est ajoutée entre le projet de service et le projet client de service. Cela garantit que le client accède toujours aux fichiers binaires de service à jour, ce qui est particulièrement important pour les scénarios de débogage, tels que le passage du code client au code de service.
Si le projet de service est supprimé de la solution, cette dépendance de build explicite est invalidée. Visual Studio ne peut plus garantir que le projet de service est reconstruit si nécessaire.
Pour corriger cette erreur, régénérez manuellement le projet de service :
- Dans le menu Tools (Outils), sélectionnez Options.
- Dans la boîte de dialogue Options, développez Projets et solutions, puis cliquez sur Général.
- Vérifiez que la case à cocher Afficher les configurations de build avancées est cochée, puis sélectionnez OK.
- Chargez le projet de service WCF.
- Dans la boîte de dialogue Configuration Manager, définissez la configuration de la solution active sur Débogage. Pour plus d’informations, consultez Guide pratique pour créer et modifier des configurations.
- Dans l’Explorateur de solutions, sélectionnez le projet de service WCF.
- Dans le menu Générer , sélectionnez Reconstruire pour reconstruire le projet de service WCF.
Services de données WCF ne s’affiche pas dans le navigateur
Lorsqu’il tente d’afficher une représentation XML des données dans un service de données WCF, Internet Explorer peut mal interpréter les données en tant que flux RSS. Assurez-vous que l'option permettant d'afficher les flux RSS est désactivée.
Pour corriger cette erreur, désactivez les flux RSS :
- Dans Internet Explorer, dans le menu Outils , sélectionnez Options Internet.
- Sous l’onglet Contenu , dans la section Flux , sélectionnez Paramètres.
- Dans la boîte de dialogue Paramètres du flux, désactivez la case à cocher Activer le mode Lecture du flux, puis sélectionnez OK.
- Sélectionnez OK pour fermer la boîte de dialogue Options Internet.