Что вы подразумеваете под «добавлением атрибута к операциям в клиентском прокси»? В каком файле это должно быть добавлено?
рнутый сервис wcf (.net 4.0). Конфигурация на стороне службы выглядит так:
<endpoint address=""
binding="webHttpBinding"
bindingNamespace="https://mydomain/myservice/services"
behaviorConfiguration="WebBehavior"
contract="MyService" />
<endpointBehaviors>
<behavior name="WebBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
Попытка использовать сервис в веб-приложении,web.config
выглядит как:
<system.serviceModel>
<client>
<endpoint name="MyServiceEndpointBasicHttp"
address="http://myDomain/myService"
binding="webHttpBinding" behaviorConfiguration="webBehavior"
contract="MyNamespace.IMyService" />
</client>
<behaviors>
<endpointBehaviors>
<behavior name="webBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
Я получаю исключение при вызове службы:
Операция «Method1» контракта «IMyService» задает несколько параметров тела запроса для сериализации без каких-либо элементов-оболочек. Максимум один параметр тела может быть сериализован без элементов оболочки. Либо удалите дополнительные параметры тела, либо установите для свойства BodyStyle в WebGetAttribute / WebInvokeAttribute значение Wrapped.
После некоторого поиска в Google, мы установили[WebGet(BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Xml)]
на методы, но безуспешно ...
Одна интересная вещь: всегда есть одно и то же имя метода в исключении, даже если я вызываю другие методы ...
Сервис отлично работает в режиме REST при тестировании с браузером путем ввода имени метода и необходимых параметров ...