Каков правильный способ создания службы WCF в отдельной сборке, а затем вывести ее конечную точку через веб-проект в том же решении?
Служба WCF в отдельной сборке
Ответ 1
Я сделал это следующим образом:
- Создайте свою службу WCF в новом проекте типа библиотеки классов
- Поместите свои интерфейсы и реализации в эту библиотеку в пространство имен, например
MyServiceLib
-
Добавьте в свой веб-проект файл типа
MyService.svc
только с одним утверждением, директива ServiceHost:<%@ ServiceHost Service="MyServiceLib.MyService" %>
где
MyServiceLib
- это имя пространства имен вашей службы WCF иMyService
имя вашего класса реализации службы. (Эта простая настройка относится к случаю, когда вы развертываете службу как сложную сборку (например, в каталогеBin
). Если вы хотите развернуть с исходным кодом и разрешить сложность при первом запросе, вам нужно добавить еще несколько атрибутов (язык программирования, исходный файл и т.д.) - Поместите конфигурацию службы в
web.config
в разделе<system.serviceModel>
.
Ответ 2
Я предпочитаю разделять мои контракты и реализации в своих собственных сборках, это поддается альтернативным реализациям на основе тех же контрактов по дороге.
Ответ 3
Если у вас есть контроль над сервером и клиентом, вы можете использовать метод, описанный в этой ссылке: http://www.dnrtv.com/default.aspx?showNum=122