WCF - использование нескольких привязок, включая REST (WebHttpBinding) в одной библиотеке служб? - PullRequest
0 голосов
/ 07 декабря 2009

Я хочу предоставить свой уровень обслуживания (который в настоящее время написан как стандартная библиотека классов с POCO) для внешнего и внутреннего потребления. Внешние клиенты будут использовать его через API в стиле REST, в то время как внутреннее приложение MVC будет использовать его через привязку net.tcp для повышения производительности.

Как мне сделать это элегантно? Я могу написать 2 оболочки для REST, используя функции REST VS2010 Beta 2, а другую - для стандартных привязок WCF.

Могу ли я сделать это в одной обертке? или лучше просто сделать рефакторинг моих существующих сервисов как WCF и выставить их на разные конечные точки, используя разные привязки, такие как WebHTTPBinding, WsHttpBinding и т. д.

С уважением,

Аджай

Ответы [ 3 ]

1 голос
/ 07 декабря 2009

Ваша сервисная библиотека будет содержать только реализацию сервиса - ваши сервисные (и данные) контракты должны быть в отдельной сборке "Контракты".

Вопрос о хостинге и используемом протоколе обрабатывается вашим сервисом хост - это может быть IIS или отдельная служба NT, консольное приложение или что-то еще. Это полностью независимо от вашего класса обслуживания и вашей библиотеки обслуживания.

Так что да - вы можете легко создать библиотеку служб и затем предоставить эту службу множеству конечных точек на хосте службы - эти две вещи должны быть полностью отделены друг от друга.

0 голосов
/ 08 декабря 2009

VS 2010 Функции REST бета-версии 2 сами по себе построены на основе WCF, поэтому, если вы хотите их использовать, вам все равно придется преобразовать свою службу в службу WCF. В этот момент, как говорят Dani и marc_s, вы можете очень легко добавить дополнительные конечные точки к сервису через файл конфигурации.

0 голосов
/ 07 декабря 2009

Конечно, вы можете просто добавить их в файл конфигурации или использовать код.

...