2010-08-23 6 views
2

J'ai un service WCF que j'ai écrit et exposé en tant que service Windows. Dans Visual Studio 2010 pour deux applications, je peux cliquer avec le bouton droit de la souris sur les références, sélectionner "Ajouter une référence de service ...", mettre les informations requises, et cela fonctionne très bien.L'apparence du service WCF fonctionne pour une solution client, mais pas une autre

Pour une application différente, quand tout cela fonctionne correctement, mais quand je regarde le service dans le navigateur d'objet, tout ce que je vois est une classe et une énumération. La classe de service, ainsi que plusieurs classes et énumérations sont manquantes. Tous les projets sont 3.5.

Qu'est-ce qui causerait quelque chose comme ça? Oh, et si je clique sur l'onglet avancé dans la boîte de dialogue "Ajouter une référence de service ..." et que je me connecte au service en tant que service web, cela fonctionne.

Je ne veux pas vous y connecter en tant que service Web pour de multiples raisons cependant (l'une étant les recenseurs valeurs sont explicites, ce qui est perdu sur un service Web.)

Merci à l'avance, Jeremy .

Répondre

2

Informations insuffisantes, mais il semble que dans le premier cas vos projets Service et Client partagent des types C#. Lors de l'utilisation de SOAP, ces types seraient recréés mais dans un autre projet WCF, ils sont simplement ignorés.

+0

Merci pour votre commentaire. Je ne sais pas ce que vous avez dit était le problème, mais cela m'a conduit à ce que le problème est. Dans le projet que le service ne fonctionne pas correctement, j'ai réellement la logique métier du service inclus en tant que DLL de référence (je suis en train de réécrire l'application pour utiliser le service et non la DLL). Merci à votre commentaire, je juste pour le plaisir retiré la référence DLL et ajouté la référence de service, et cela a fonctionné. Si j'ajoute de nouveau la référence DLL et ajoute ou met à jour le service, les classes disparaissent. Vous ne savez pas pourquoi cela se produit, car les espaces de noms sont différents. Merci! – Jeremy