Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Операция "GetNotesByDate" контракта "INoteService" задает несколько параметров текста запроса, которые должны быть сериализованы без каких-либо элементов оболочки.

39K
20 января 2014 года
Tequilla
24 / / 19.10.2009
Всем привет!
Столкнулся с такой проблемой: при попытке вызвать со стороны веб-клиента веб-сервис, получаю ошибку со следующим содержанием:
Цитата:
Операция "GetNotesByDate" контракта "INoteService" задает несколько параметров текста запроса, которые должны быть сериализованы без каких-либо элементов оболочки. Самое большее один параметр текста может быть сериализован без элементов оболочки. Либо удалите лишние параметры текста, либо задайте для свойства BodyStyle в WebGetAttribute/WebInvokeAttribute значение Wrapped..



Последовав совету этой ошибки я добавил атрибут BodyStyle в интерфейс моего WCF-сервиса:

 
Код:
[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "/notes/{userId}")]
List<Note> GetAllNotes(string userId);

[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "notes/{userId}/{date}")]
List<Note> GetNotesByDate(String userId, String date);
И вновь я получаю ту же самую ошибку. Ничего не изменилось.
Причем, самое интересное то, что я вызываю не тот метод, на который жалуется IIS, а первый из представленного выше листинга (там где один параметр)
Вызываю веб-сервис следующим образом:


 
Код:
ServiceReference1.NoteServiceClient client = new NoteServiceClient();
List<note> allNotes = client.GetAllNotes("3").ToList();
Буду очень признателен, если кто-то сможет разъяснить мне в чем тут дело.
Заранее спасибо!

На всякий случай приведу часть файла web.config от веб -клиента, быть может именно в нем я и ошибся:

Код:
<system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding name="WebHttpBinding_INoteService">
          <security mode="Transport">
            <transport clientCredentialType="None"/>
          </security>
        </binding>
      </webHttpBinding>
    </bindings>
    <client>
      <endpoint address="https://localhost:1095/NoteService.svc" binding="webHttpBinding" bindingConfiguration="WebHttpBinding_INoteService"
               contract="ServiceReference1.INoteService" name="WebHttpBinding_INoteService" behaviorConfiguration="webHttp">
        <identity>
          <dns value="localhost"/>
        </identity>
      </endpoint>
    </client>
    <behaviors>
      <endpointBehaviors>
        <behavior name="webHttp">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
  </system.serviceModel>
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог