72 votes

Comment puis-je me débarrasser du message d'erreur "L'assemblage cible ne contient aucun type de service" dans VS2008 ?

J'ai une application wcf client/serveur.

Mon exécutable ne définit pas de ServiceContract il n'y a même pas de référence à l'adresse suivante System.ServiceModel ( mais plutôt une référence à un assemblage qui contient la logique de connexion au serveur. )

J'ai un autre assemblage, qui est référencé par mon EXE, qui contient une ServiceContract .

Avant, ça marchait bien. Hier, j'ai beaucoup joué avec les paramètres de mon projet ( confiance partielle, confiance totale, paramètres de déploiement, etc. ) et maintenant, chaque fois que je lance mon client, j'ai la boîte de message suivante :

Hôte du service Microsoft WCF
L'assemblage cible ne contient aucun type de service.
Vous devrez peut-être ajuster la politique de sécurité d'accès au code de cet assemblage.

Puis VS se fige pendant 1 minute, et finalement me laisse déboguer mon programme comme d'habitude.

J'ai trouvé un billet sur ce problème mais la solution ne s'applique pas à ma situation. Avez-vous des idées ?

120voto

Brann Points 9983

C'est toujours comme ça. Vous cherchez pendant 2 heures, vous finissez par poster sur SO, et 5 minutes plus tard, vous trouvez la réponse.

Dans le Options WCF de l'onglet des propriétés du projet définissant le ServiceContract , il y a une case à cocher intitulée "Start WCF Service Host when debugging another project in the same solution" que j'ai décochée.

Je n'ai aucune idée de la façon dont il a été vérifié en premier lieu.

Quoi qu'il en soit, cela a résolu mon problème. Voir le Référence MSDN pour le cadre de ce projet.

1 votes

Où cela se trouve-t-il dans Visual Studio 2010 ?

3 votes

@Jonathan : je parie que vous ne regardez pas les propriétés du bon projet. Vous devez sélectionner le projet définir le contrat ; pas celui qui le met en œuvre ni celui qui l'appelle.

0 votes

Merci Brann, tu avais raison. Il est au même endroit en 2010

8voto

Pour déterminer le projet avec ce problème, trouvez la chaîne 3D9AD99F-2412-4246-B90B-4EAA41C64699 dans vos fichiers de projet.

Exemple : <ProjectTypeGuids>{3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

Ensuite, désactivez l'option de projet "Options WCF/Démarrer l'hôte du service WCF lors du débogage d'un autre projet dans la même solution"

1 votes

Bien que cette solution puisse résoudre le problème pour certaines personnes, au moins dans vs2015, elle supprimera "Publier" du menu contextuel lors d'un clic droit sur le projet WCF...

1 votes

Oui, cela nous aidera à trouver quel projet nous avons coché par erreur la case "Start WCF Service Host when ..." comme @Brann l'a souligné. J'utilise la commande suivante pour trouver quel projet a le paramètre : c : \MyProjects >findstr /s /m "3D9AD99F-2412-4246-B90B-4EAA41C64699" *.csproj

4voto

HydPhani Points 163

Certains blogs disent que cela peut être dû à la copie du projet à partir d'une branche différente, qui remplace les GUIDs... donc supprimez-les simplement comme expliqué dans le document suivant ce blog.

0 votes

De VS2015 supprimer de Guid, est allé le projet invalide

1voto

user3097221 Points 1

Bon travail, Bran :

Dans l'onglet WCF Options des propriétés du projet définissant le ServiceContract, il y a une case à cocher intitulée "Start WCF Service Host when debugging another project in the same solution" que j'ai décochée.

1voto

J'ai également connu le même genre de problème et j'ai cherché pendant des heures à me débarrasser de cette erreur particulière. Finalement, j'ai trouvé un moyen d'y remédier.

Quand vous rencontrez ce problème particulier, vous essayez d'exécuter vos applications serveur et client en tant que administrateur et changer le Propriétés WPF du projet.

Lorsque vous cliquez sur les propriétés WPF du projet, vous trouverez une option de construction. Dans l'option de construction, il y a une option appelée OBJECTIF DE LA PLATE-FORME dans lequel vous pouvez changer la cible de la plateforme en x86 . Notez également qu'en cas de x84 vous devez le régler sur x84 .

Maintenant exécuter votre projet depuis la console c'est-à-dire allez dans le dossier où vos projets sont sauvegardés et dans la corbeille du client, vous trouverez un dossier déboguer où vous obtiendrez votre application console . Vous devriez maintenant être en mesure d'exécuter l'application avec succès.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X