Каков правильный способ создания службы 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