Служба 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