|
Windows Communication Foundation [Problemes]
Crée le : 01/10/2010
|
Modifié le : 28/01/2011
|
Par : Proteus
|
Vue : 105
|
Commentaire(s) : 1
|
|
Les problemes en WCF Au travers des differents tutoriaux que vous avez pu lire sur ce site vous allez certainement rencontrer des erreurs ou des personnes qui ne les ont pas suivis. J'ai listé ci-après la liste des differentes erreurs que j'ai pu rencontrer. Cette liste est loin d'etre exhaustive. Mais si vous rencontrez un probleme qui ne figure pas dans la liste n'hésitez pas à me laisser un commentaire ou m'envoyer un mail je vous aiderai à trouver une solution et j'ajouterai votre probleme et sa solution pour les prochains visiteurs. Problème 1 Lorsque vous tentez d’accéder à votre service depuis un ajout de référence la console vous renvoie une erreur. Il s’agit certainement ici d’un problème de référencement de votre service Web, le problème d’accessibilité est le plus souvent lié à une mauvaise configuration de votre End Point dans votre fichier de configuration. Vous devez prêter une attention particulière à l’adresse et au mode de transport. Référez vous au dernier encadré rose (Tuto : Windows Communication Foundation [Etape 1] - Server), il contient une configuration qui doit faire fonctionner votre service. Problème 2 - "Methodes introuvables..." Vous voyez votre service, mais vous ne voyez pas vos méthodes. Il s’agit ici très certainement d’un problème d’exposition. Il faut procéder par élimination. Vérifier les attributs devant vos méthodes dans votre Interface, vérifier que vous avez bien implémenté votre Classe Métier avec votre interface, ensuite il vous faut vérifier le fichier configuration. Prêtez une attention particulière aux paramètres liés aux contrats. Référez vous là aussi au dernier encadré rose(Tuto : Windows Communication Foundation [Etape 1] - Server). N'oubliez pas que le contrat se declare NAMESPACE.NOMDELINTERFACE. Sauf de la case de l'adresse de base ou la vous devez l'appeler "..../NAMESPACE/NOMDEVOTRECLASSEMETIER" Problème 3 - "Impossible d'acceder au service a l'adresse..." Le référencement de votre service s’est fait sans que vous rencontriez de problème mais lorsque l’action s’est produite vous avez un avertissement lié a votre End Point. Généralement cette erreur survient quand le fichier de configuration généré par le service ne permet pas d’établir de lien avec le service. Si vous regardez votre fichier de configuration client vous vous apercevrez qu’il n’est pas complet Problème 4 - "Une erreur s'est produite en tentant d'effectuer une demande à ..." Lorsque l'on entre dans la création d'une application distribuée on peut se heurter à des problemes liés à la sécurité. Si nous prenons l'exemple d'une application SilverLight qui accède à un service WCF qui n'est pas stocké sur le même domaine que notre application SilverLight (ce qui arrive tout le temps nottament pendant la phase de création du projet. Votre Service est deja deployé sur votre serveur mais votre application est sur votre poste de developpement), nous nous heurtons à un message d'avertissement qui s'avère plus grave s'il n'est pas traité correctement.
Au moment de la compilation de votre application vous allez voir apparaitre le message suivant
il s'agit ici du deuxieme avertissement. Si vous cliquez sur oui, la sanction est immediate. Dés que vous tentez d'accéder à des méthodes de votre service vous obtenez le message d'erreur : "Une erreur s'est produite en tentant d'effectuer une demande à l'URI 'http://XX.XXX.XXX.XXX/WCFProteusLibrary/ProteusWcfLibrary.ProteusDataBase.svc'. Ce problème peut être dû à une tentative d'accès à un service entre domaines sans qu'une stratégie entre domaines appropriée soit en place, ou une stratégie inadaptée aux services SOAP. Il est possible que vous soyez contraint de contacter le propriétaire du service pour publier un fichier de stratégie entre domaines et veiller à ce qu'il autorise l'envoi d'en-têtes HTTP SOAP. Cette erreur peut également être liée à l'utilisation de types internes dans le proxy de service Web sans utiliser l'attribut InternalsVisibleToAttribute. Consultez l'exception interne pour plus de détails." En fait, cette erreur est plutot simple à gérer. Il suffit de faire en sorte de rendre le domaine où est stocké votre Service WCF confiant. L’idée est la suivante : toute operation Inter-Domaine est interdite tant que l’administrateur du domaine n’a pas prouvé qu’il était un domaine de confiance. Pour se faire, il suffit d’ajouter 2 fichiers à la racine de votre domaine. Et dont l’adresse globale sera donc la suivante : www.VotreDomaine.com/ crossdomain.xml Le « clientaccesspolicy.xml » qui contiendra :
Et dont l’adresse globale sera donc la suivante : « www.VotreDomaine.com/ clientaccesspolicy.xml »
Maintenant si vous relancez votre application client, vous aurez toujours le message automatique d’avertissement d’accès a une référence inter-site cependant vous pouvez le désactiver. Votre client devra maintenant pouvoir consommer votre service sans générer d’erreur. Probleme 5 - "Impossible de trouver un élément de point de terminaison..." Quelqu'un m'a remonté le probleme suivant : "Impossible de trouver un élément de point de terminaison par défaut qui fait référence au contrat "...." dans la section de configuration du client ServiceModel. etc. Si vous utilisez plusieurs projets dans votre solution que votre projet qui accede à votre service WCF est un projet qui est utilisé par un autre projet principale alors votre problème vient du fait que votre App.Config ne reference les points de terminaison de votre service WCF. Pour corriger le probleme il vous suffit de copier le App.Config du projet qui consomme votre service WCF dans le projet appelant et de relancer votre application. Merci a Arthur pour m'avoir poser la question. Appel à sollicitations Si vous rencontrez des soucis sur WCF n'hesitez pas m'envoyer un mail j'essaierai dans la mesure du possible de vous aider à trouver une solution et j'ajouterai votre problème et sa solution cette liste afin d'augement cette base de connaissance. Merci d'avance pour vos messages.
|
||||
Commentaire de Arth
|
|
merci Salah |
||||
| Crée le : 24/01/2012 | Adresse Ip : 145.248.195.1 | E-Mail : none | Site Web : none | ||