Comment puis-je me débarrasser du message d’erreur «L’assembly cible ne contient aucun type de service» dans VS2008?

J’ai une application client / serveur wcf

Mon exécutable ne définit aucun ServiceContract , il n’a même pas de référence à System.ServiceModel ( mais à la place une référence à un assembly contenant la logique de connexion au serveur )

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

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

Hôte de service Microsoft WCF
L’assembly cible ne contient aucun type de service.
Vous devrez peut-être ajuster la stratégie de sécurité d’access au code de cet assembly.

Ensuite, VS se bloque pendant 1 minute et finit par me permettre de déboguer mon programme comme d’habitude.

J’ai trouvé un article sur ce problème , mais la solution ne s’applique pas à ma situation. Des idées?

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

Dans l’onglet Options WCF des propriétés du projet définissant ServiceContract , il existe une case à cocher intitulée “Démarrer l’hôte de service WCF lors du débogage d’un autre projet dans la même solution” que j’ai décoché.

Je ne sais pas comment cela a été vérifié en premier lieu.

En tout cas, cela a résolu mon problème. Voir la référence MSDN pour ce paramètre de projet.

Juste au cas où quelqu’un d’autre chercherait une réponse, une autre cause de cette erreur peut être si vous avez un fichier App.config dans un projet qui est une bibliothèque de classes avec une section .

J’ai déplacé le code de service d’un projet qui était un exécutable vers un autre projet, mais App.config accidentellement laissé l’ancien fichier App.config . Mon nouveau projet, qui était une application de console configurée par programme et démarrait WCF, mais comme l’ancien fichier App.config trouvait dans l’assembly référencé, j’obtiendrais cette boîte de dialog cryptée même lors du débogage de l’application console.

Il a fallu environ 12 heures pour suivre celui-ci, car je n’avais pas réalisé que le débogueur VS vérifie tous les assemblys référencés pour App.config qui ont des services WCF configurés.

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

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

Désactivez ensuite l’option de projet “Options WCF / Démarrer l’hôte de service WCF lors du débogage d’un autre projet dans la même solution”

Certains blogs disent que cela est peut-être dû à la copie du projet depuis une twig différente, ce qui remplace les GUID … alors supprimez-les simplement comme expliqué dans ce blog.

Cette erreur peut également être provoquée par un nom de service incorrect dans votre fichier de configuration:

    ... 

Vérifiez votre fichier de configuration et assurez-vous que le nom du service est correct.

Vieux fil Supprimez simplement les arguments de ligne de commande de la section Débogage dans Options. Cela m’a aidé.

Je suis également passé par le même genre de problème et ai cherché pendant des heures à me débarrasser de cette erreur particulière. Finalement, j’ai trouvé un moyen de m’en sortir.

Lorsque vous rencontrez ce problème particulier, vous essayez d’exécuter votre application client et serveur en tant qu’administrateur et de modifier les propriétés WPF du projet.

Lorsque vous cliquez sur les propriétés WPF du projet, vous trouverez une option de génération. Dans l’option de construction, il existe une option appelée PLATFORM TARGET , dans laquelle vous pouvez changer la cible de la plate-forme en x86 . Notez également que dans le cas de x84 , vous devez le définir sur x84 .

Maintenant, lancez votre projet depuis la console , c.-à-d. Allez dans le dossier où vos projets sont enregistrés et dans le bac du client, vous trouverez un dossier de débogage où vous obtiendrez votre application console . Vous devriez maintenant pouvoir exécuter l’application avec succès.

Ajouter une autre solution car ce message semble avoir plusieurs causes. La suppression du GUID suivant de la balise ProjectTypeGuids dans le fichier de projet a résolu le problème.

 {3D9AD99F-2412-4246-B90B-4EAA41C64699}