WCF - использование нескольких привязок, включая REST (webHttpBinding), в одной библиотеке сервисов?

StackOverflow https://stackoverflow.com/questions/1859079

Вопрос

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

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

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

С уважением,

Аджай

Это было полезно?

Решение

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

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top