Comment puis-je spécifier l'espace de noms d'un contrat dans la configuration XML d'un point de terminaison WCF?

StackOverflow https://stackoverflow.com/questions/4688930

Question

J'ai ce contrat de service WCF (très simplifié, mais attention à l'espace de noms, il est dans):

namespace Foo.Services.BarService
{
    [ServiceContract]
    interface BarContract {... }
}

Dans mon app.config (côté client), je configurer un point de terminaison pour un service:

<endpoint address="..."
          binding="..."
          contract="Foo.Services.BarService.BarContract" />

Cependant, il en résulte une erreur disant qu'aucun critère d'évaluation n'a été trouvée dans la configuration du client qui supporte BarService.BarContract. Je ne peux me débarrasser de cette erreur en changeant la valeur de l'attribut contract à BarService.BarContract (à savoir en supprimant l'espace de noms).

Pourquoi? Là où cette erreur pourrait provenir? Pourquoi dois-je mentionner pas la partie de l'espace de noms d'un type de contrat? Ne devrait pas ce résultat encore plus dans WCF ne pas trouver un point final correspondant?


Répondre aux questions dans le commentaire de @Ladislav Mrnka ci-dessous:

  • Je parle du côté client. (J'oublié de mentionner ce bit,. Désolé) Cette erreur peut venir peut-être du côté serveur?

  • Je généré le contrat de service ci-dessus, ainsi que d'une classe BarClient qui l'implémente, via Visual Studio de Ajouter un service de référence établissement. J'ai spécifié l'URL du BarService, qui est dirigé par quelqu'un d'autre. Voilà où je précise également que le service doit être placé dans l'espace de noms Foo.Services.BarService.

  • J'allais utiliser le service directement via le moi généré automatiquement classe BarClient pour, non pas par un ChannelFactory<BarContract>.

Était-ce utile?

La solution

Création client par Ajouter une référence de service ne pas Recréer la structure de l'espace de noms de service. Tous les types créés et les contrats sont placés dans nouvel espace de noms défini par le nom de la référence de service. Donc je suppose que vous avez nommé votre référence de service BarService. Configuration du client doit suivre les noms des contrats générés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top