Справочник службы WCF из библиотеки классов Silverlight - PullRequest
2 голосов
/ 11 августа 2009

У меня есть приложение Silverlight, связывающееся со стороной сервера через службы WCF. Изначально у меня было все в основном приложении Silverlight, но теперь я хотел выделить некоторые классы в отдельный проект библиотеки классов Silverlight. Это, однако, дало мне некоторые странные проблемы ...

Я хотел бы выделить классы, которые обеспечивают связь WCF, с отдельным проектом. Итак, я:

  • Создан новый проект; Библиотека классов Silverlight
  • Переместил классы из моего приложения Silverlight в мою библиотеку классов Silverlight
  • Удалена ссылка на Службу в приложении, поскольку я больше не вызываю ее из приложения.
  • Добавлена ​​ссылка на Сервис из проекта библиотеки классов.

Теперь - компиляция в порядке, и я получаю intellisense для служебных вещей в библиотеке классов, так что, похоже, все в порядке. Я также обновил сервис и получил обновления в библиотеке классов. Но при запуске приложения происходит сбой при вызове службы, что приводит к следующей ошибке:

Исключение InvalidOperationException не было обработано кодом пользователя

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

Похоже, он не может найти услугу, но почему? Я предполагаю, что не должно быть проблем с получением ссылок на сервисы из библиотеки классов Silverlight, так как это позволяет мне добавить их?

1 Ответ

2 голосов
/ 11 августа 2009

ИТ не может найти конфигурацию службы - где у вас есть конфигурация для службы WCF? По умолчанию клиентское приложение (EXE) будет иметь файл app.config, содержащий конечные точки службы для подключения.

Также по умолчанию библиотеки классов (DLL) не имеют своей собственной конфигурации, но полагаются на свое хостинговое приложение для обеспечения конфигурации для них.

В общем, вам, вероятно, не хватает конфигурации для конечной точки клиента. Скорее всего, он был создан как app.config в проекте библиотеки классов, но на самом деле он не используется - вам придется переместить раздел <system.serviceModel> в конфигурацию основного приложения (я не бегло Silverlight, но вы будете знать, где его поставить).

Марк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...