Dépannage des références de service
Mise à jour : Juillet 2008
Cette rubrique répertorie les problèmes courants qui sont susceptibles de se produire lorsque vous utilisez des références de service de données ADO.NET ou Windows Communication Foundation (WCF) dans Visual Studio.
Erreur lors du retour de données d'un service
Lorsque vous retournez un DataSet ou une DataTable d'un service, vous recevrez peut-être une exception de type « La taille maximum du quota pour les messages entrants a été excédée ». Par défaut, la propriété MaxReceivedMessageSize pour certaines liaisons est définie selon une valeur relativement faible afin de limiter les risques d'exposition à des attaques par déni de service. Vous pouvez augmenter cette valeur pour éviter l'exception. Pour plus d'informations, consultez MaxReceivedMessageSize.
Pour corriger cette erreur :
Dans l'Explorateur de solutions, double-cliquez sur le fichier app.config pour l'ouvrir.
Recherchez la propriété MaxReceivedMessageSize et affectez-lui une valeur plus importante.
Impossible de trouver un service dans Ma solution.
Lorsque vous cliquez sur le bouton Découvrir dans la boîte de dialogue Ajouter des références de services, un ou plusieurs projets Bibliothèque de services WCF dans la solution n'apparaissent pas dans la liste des services. Cela peut se produire si une bibliothèque de services a été ajoutée à la solution, mais n'a pas encore été compilée.
Pour corriger cette erreur :
- Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet Bibliothèque de services WCF, puis cliquez sur Générer.
Erreur lors de l'accès à un service sur un Bureau à distance
Lorsqu'un utilisateur accède à un service WCF hébergé sur le Web sur une connexion Bureau à distance sans autorisation administrative, l'authentification NTLM est alors utilisée. Si l'utilisateur ne dispose pas d'autorisations administratives, il 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 corriger cette erreur :
Dans le projet de site Web, ouvrez les pages Propriétés.
Sous l'onglet Options de démarrage, désactivez la case à cocher Authentification NTLM.
Remarque : Vous ne devez désactiver l'authentification NTLM que pour les sites Web qui contiennent exclusivement des services WCF. La gestion de la sécurité des services WCF s'effectue via le fichier de configuration Web.config. L'authentification NTLM n'est de ce fait pas nécessaire.
Pour plus d'informations, consultez Dépannage des exceptions : System.ServiceModel.Security.MessageSecurityException.
Le niveau d'accès pour le paramètre Classes générées est sans effet.
Définir l'option Niveau d'accès pour les classes générées dans la boîte de dialogue Configurer les références de service sur Interne ou Friend peut ne pas fonctionner dans tous les cas. Bien que l'option semble être définie dans la boîte de dialogue, les classes de prise en charge qui en résultent seront générées avec un niveau d'accès Public.
C'est une limitation connue de certains types, tels que ceux qui sont sérialisés à l'aide du XmlSerializer.
Erreur lors du débogage du code de service
Lorsque vous exécutez pas à pas le code d'un service WCF à partir du code client, vous pouvez recevoir une erreur concernant des symboles manquants. Cela peut se produire lorsqu'un service qui faisait partie de votre solution a été déplacé ou supprimé de celle-ci.
Lorsque vous ajoutez pour la première fois une référence à un service WCF qui fait partie de la solution actuelle, une dépendance de génération explicite est ajoutée entre le projet de service et le projet de client de service. Le client est ainsi assuré d'accéder en permanence à des binaires de service à jour, ce qui est particulièrement important pour déboguer des scénarios tels que l'exécution pas à pas du code client dans le code de service.
Si le projet de service est supprimé de la solution, cette dépendance de génération explicite est invalidée. Visual Studio ne peut plus garantir la régénération du projet de service selon les besoins.
Pour résoudre cette erreur, vous devez régénérer le projet de service manuellement :
Dans le menu Outils, cliquez sur Options.
Dans la boîte de dialogue Options, développez Projets et solutions, puis sélectionnez Général.
Assurez-vous que la case à cocher Afficher les configurations de génération avancées est activée, puis cliquez sur OK.
Chargez le projet de service WCF. Pour plus d'informations, consultez Comment : créer des solutions à plusieurs projets.
Dans la boîte de dialogue Gestionnaire de configurations, définissez Configuration de la solution active sur Débogage. Pour plus d'informations, consultez Comment : créer et modifier des configurations.
Dans l'Explorateur de solutions, sélectionnez le projet de service WCF.
Dans le menu Générer, cliquez sur Régénérer pour régénérer le projet de service WCF.
Les services de données ADO.NET ne s'affichent pas dans le navigateur
Lorsque Microsoft Internet Explorer tente d'afficher une représentation XML des données dans un service de données ADO.NET, les données peuvent être interprétées de façon incorrecte comme un flux RSS. Vous devez vous assurer 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, cliquez sur Options Internet.
Sous l'onglet Contenu, dans la section Flux, cliquez sur Paramètres.
Dans la boîte de dialogue Paramètres de flux, désactivez la case à cocher Activer le mode Lecture du flux, puis cliquez sur OK.
Cliquez sur OK pour fermer la boîte de dialogue Options Internet.
Voir aussi
Tâches
Consommation de services ASMX et WCF, exemple
Autres ressources
Services Windows Communication Foundation et services de données ADO.NET
Historique des modifications
Date |
Historique |
Raison |
---|---|---|
Juillet 2008 |
Ajout d'informations concernant les services de données ADO.NET. |
Modifications de fonctionnalités dans le SP1. |