J'ai récemment créé un service WCF (dll) et un hôte de service (exe). Je sais que mon service WCF fonctionne correctement car je suis en mesure d'ajouter avec succès le service à WcfTestClient.
Cependant, il semble que je rencontre un problème lorsque j'utilise mon WCF à partir d'un hôte de service (exe). Je peux ajouter une référence à la WCF (dll) à mon hôte de service (exe) et créer les composants nécessaires à l'exe; comme le programme d'installation du service, l'hôte du service et l'app.config, compilez puis installez enfin l'exe à l'aide d'InstallUtil. Mais, lorsque j'ai essayé de démarrer le service dans la console de gestion Microsoft, le service s'arrête immédiatement après son démarrage.
J'ai donc commencé à enquêter sur la cause exacte de ce problème et j'ai trouvé cette erreur à partir du journal des applications dans l'Observateur d'événements.
La description:
Le service ne peut pas être démarré. System.InvalidOperationException: Le service 'Service' n'a aucun point de terminaison d'application (non-infrastructure). Cela peut être dû au fait qu’aucun fichier de configuration n’a été trouvé pour votre application, qu’aucun élément de service correspondant au nom de service n’a été trouvé dans le fichier de configuration, ou qu’aucun point de terminaison n’a été défini dans l’élément de service.
Cette erreur est en fait générée dans le OnStart
; de mon exe, quand j'effectue cet appel ServiceHost.Open()
. J'ai vu de nombreux articles où d'autres personnes se sont heurtées à ce problème, mais la plupart, sinon la totalité, affirment que le nom du service ou le contrat; l'espace de noms et le nom de la classe ne sont pas spécifiés. J'ai vérifié ces deux entrées dans mon fichier de configuration; dans l'exe ainsi que dans la dll, et ils correspondent parfaitement. D'autres personnes au bureau ont vérifié derrière moi pour s'assurer que je ne deviendrais pas aveugle à un moment donné, mais bien sûr, elles sont arrivées à la même conclusion que moi que tout semblait avoir été spécifié correctement. Je suis vraiment perdu quant à ce qui se passe à ce stade. Quelqu'un pourrait-il m'aider avec ce problème?
Une autre chose qui est apparue comme une raison possible que cela puisse se produire est que le fichier app.config n'est jamais lu; du moins pas celui qui, à mon avis, devrait être lu. Cela pourrait-il être le problème? Si tel est le cas, comment puis-je résoudre ce problème. Encore une fois, toute aide serait appréciée.