2013-10-02 4 views
0

У меня есть служба Windows, которая использует пользовательскую библиотеку. LibraryA имеет служебную ссылку на ServiceB, которая также создала записи конечных точек в файле app.config библиотеки. У службы Windows нет записей в app.config для ServiceB.Когда файл конфигурации читается?

Я получаю ошибку ниже, когда пытается библиотека B ссылки ServiceB:

Не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт «имя службы» в разделе конфигурации клиента ServiceModel. Возможно, это связано с тем, что файл конфигурации не найден для вашего приложения или потому, что элемент-конечный элемент, соответствующий этому контракту, не найден в клиентском элементе.

Служба Windows - это хост. Я предполагаю, что если я скопирую информацию конфигурации конфигурации из файла конфигурации LibraryA в файл конфигурации Windows Service, все будет работать нормально. Но почему файл конфигурации LibraryA вообще не читается, тем более, что у него есть информация о конфигурации?

+0

Можете ли вы добраться до конечной точки в веб-браузере? Это указывает на неправильную конфигурацию или вообще не работает служба. –

ответ

1

Конфигурация конечной точки считывается из файла конфигурации, который принадлежит сборке входов. То есть в этом случае не LibraryA, а приложение, которое использует LibraryA для подключения к удаленному сервису.

Вам необходимо добавить конфигурацию конечной точки клиента (используемую LibraryA) в соответствующий файл конфигурации.

Файл конфигурации от LibraryA не будет считаться данным приложением. Вы можете попробовать использовать разделы конфигурации, используя externalsource, но это не всегда удобно. Обычно лучше, чтобы каждое приложение имело собственную полную и автономную конфигурацию.

+0

Является ли копирование его из конфигурации LibraryA хорошей практики? – 4thSpace

+0

Ну, вы должны убедиться, что результирующий файл конфигурации действителен. например, нет двойного раздела ''. –

Смежные вопросы