Niedawno utworzyłem usługę WCF (dll) i hosta usługi (exe). Wiem, że moja usługa WCF działa poprawnie, ponieważ mogę pomyślnie dodać usługę do WcfTestClient.
Jednak wydaje mi się, że napotykam problem, gdy przychodzę do wykorzystania mojego programu WCF z hosta usługi (exe). Mogę dodać odwołanie do WCF (dll) do mojego hosta usługi (exe) i utworzyć niezbędne składniki w exe; takich jak instalator usługi, host usługi i plik app.config, skompiluj, a następnie zainstaluj plik exe przy użyciu InstallUtil. Ale kiedy próbowałem uruchomić usługę w konsoli Microsoft Management Console, usługa natychmiast zatrzymuje się po uruchomieniu.
Zacząłem więc badać, co dokładnie może być przyczyną tego problemu i wymyśliłem ten błąd z dziennika aplikacji w Podglądzie zdarzeń.
Opis:
Nie można uruchomić usługi. System.InvalidOperationException: Usługa „Usługa” ma zerowe punkty końcowe aplikacji (niezwiązane z infrastrukturą). Może to być spowodowane tym, że nie znaleziono pliku konfiguracyjnego dla Twojej aplikacji lub nie można znaleźć elementu usługi pasującego do nazwy usługi w pliku konfiguracyjnym lub ponieważ w elemencie usługi nie zdefiniowano żadnych punktów końcowych.
Ten błąd jest faktycznie generowany w OnStart
; mojego exe, kiedy wykonuję tę rozmowę ServiceHost.Open()
. Widziałem wiele postów, w których inne osoby napotkały ten problem, jednak większość z nich, jeśli nie wszystkie, twierdzi, że nazwa usługi lub umowa; przestrzeń nazw i nazwa klasy, nie są określane. Sprawdziłem oba te wpisy w moim pliku konfiguracyjnym; zarówno w exe, jak iw dll, i idealnie do siebie pasują. Miałem inne osoby w biurze, które podwójnie sprawdzały za mną, aby upewnić się, że w pewnym momencie nie oślepłem, ale oczywiście doszli do tego samego wniosku, co ja, że wszystko wyglądało tak, jakby zostało określone poprawnie. Jestem naprawdę zagubiony, jeśli chodzi o to, co się dzieje w tym momencie. Czy ktoś mógłby mi pomóc w tej sprawie?
Inną możliwą przyczyną może być to, że plik app.config nigdy nie jest odczytywany; przynajmniej nie ten, który moim zdaniem powinien być czytany. Czy to może być problem? Jeśli tak, jak mogę rozwiązać ten problem. Znowu KAŻDA pomoc byłaby doceniona.