У меня есть 2 службы WCF, которые реализуют интерфейс из отдельной библиотеки.Методы интерфейса не отмечены ни атрибутом WebGet, ни атрибутом WebInvoke.НО, одна служба будет обрабатывать POST-запрос, а другая - GET-запрос.Так что это вроде как:
Сервис 1: обрабатывает все запросы POST.Запрос в формате JSON, ответ в формате JSON.Все методы, унаследованные и реализованные из интерфейса, помечены с помощью WebInvoke
Служба 2: обрабатывает все запросы GET.Запрос в формате JSON, ответ в JSONP .Все методы, унаследованные и реализованные в интерфейсе, помечены как WebGet
Пока все хорошо.Теперь стреляйте в этих парней, ааааа и сплат.Это ошибка, которую я получаю:
Operation 'SomeMethod' in contract 'IServiceContract' has both WebGetAttribute and WebInvokeAttribute; only one can be present.
хмммм, это имеет смысл, если фактический интерфейс уже был отмечен одним или обоими атрибутами, но это не так.
double hmmmmmm:Эта настройка прекрасно работает, если вы создаете службу WCF по умолчанию через VS, добавляете вторую службу и размечаете все реализации метода.
triple hmmmmmmm: если я только удаляю атрибут WebGet из моей службы JSONP (оставляя WebInvoke включеннымсервис JSON), это работает.То же самое происходит, если я удаляю атрибут WebInvoke из моей службы JSON.
edit : еще одна странная вещь, только одна из служб выдает эту ошибку (моя служба JSONP / GET), в то время какработает обычный сервис JSON / POST.