Я недавно создал службу WCF (dll) и хост службы (exe). Я знаю, что мой сервис WCF работает правильно, так как я могу успешно добавить сервис в WcfTestClient.
Тем не менее, мне кажется, что я сталкиваюсь с проблемой, когда пытаюсь использовать WCF с хоста службы (exe). Я могу добавить ссылку на WCF (dll) на мой сервисный хост (exe) и создать необходимые компоненты для exe; например, установщик службы, узел службы и файл app.config, скомпилируйте и, наконец, установите exe-файл с помощью InstallUtil. Но когда я попытался запустить службу в консоли управления Microsoft, служба сразу же останавливается после запуска.
Поэтому я начал исследовать, что именно могло быть причиной этой проблемы, и обнаружил эту ошибку в журнале приложений в средстве просмотра событий.
Описание:
Служба не может быть запущена.
System.InvalidOperationException:
Сервис «Сервис» имеет нулевую заявку
(не инфраструктурные) конечные точки. это
может быть потому, что нет файла конфигурации
был найден для вашего приложения, или
потому что не соответствует элементу службы
название службы можно найти в
файл конфигурации, или потому что нет
конечные точки были определены в службе
элемент.
Эта ошибка фактически генерируется в OnStart
; моего exe, когда я выполняю этот вызов ServiceHost.Open()
. Я видел множество постов, где другие люди сталкивались с этой проблемой, однако большинство, если не все, утверждают, что название сервиса или контракт; пространство имен и имя класса, не указываются. Я проверил обе эти записи в моем конфигурационном файле; в exe, а также в dll, и они совпадают идеально. У меня в офисе были другие люди, которые дважды проверяли меня, чтобы убедиться, что я не ослепну в один момент, но, конечно, они пришли к тому же выводу, что и я, что все выглядело так, как будто указано правильно. Я действительно в растерянности относительно того, что происходит в данный момент. Может ли кто-нибудь помочь мне с этим вопросом?
Другая возможная причина, по которой это может происходить, заключается в том, что app.config никогда не читается; по крайней мере, не тот, который, я думаю, должен быть прочитан. Может ли это быть проблемой? Если да, то как я могу решить эту проблему? Опять же, любая помощь будет оценена.