Добавление конечных точек, реализующих различные интерфейсы, к службе WCF с поддержкой AJAX - PullRequest
1 голос
/ 09 февраля 2010

У меня есть служба WCF с поддержкой AJAX, и все отлично работает с конечной точкой ajax. Теперь я хочу добавить другую конечную точку wsHttpBinding, которая соответствует другому интерфейсу, который является подмножеством интерфейса AJAX (т.е. я хочу, чтобы в WSDL были доступны только определенные методы). У меня есть класс, который реализует оба интерфейса, но когда я посещаю адрес службы MyService.svc? Wsdl, он содержит метаданные об обеих службах. Как я могу настроить WCF для этого? Служба размещается в веб-приложении IIS.

Возможно, я не совсем понимаю концепцию, и служба соответствует интерфейсу, поэтому, если у меня есть 2 интерфейса, у меня есть 2 службы (то есть 2 файла .svc).

1 Ответ

2 голосов
/ 09 февраля 2010

Проблема здесь в том, что конечные точки WSDL / MEX, которые предоставляет WCF, предоставляют информацию об услуге , а не о конкретном контракте. Таким образом, они предоставляют метаданные обо всех контрактах, поддерживаемых сервисом.

Вы, конечно, можете разделить их на разные файлы .svc (и, таким образом, разоблачить то, что выглядит как несколько сервисов, каждый из которых имеет свой контракт).

Я не нашел, что WSDL-генерация в WCF слишком полезна для REST-подобных сервисов (включая AJAX), и это часто мешает, поэтому иногда я просто отключаю его.

...