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