Проблемы с отображением сервисов RIA, таких как SOAP, Json и т. Д. - PullRequest
1 голос
/ 25 февраля 2011

Я пытаюсь представить существующую службу RIA с SOAP и JSON.

В разделе web.config, serviceModel я поместил:

 <system.serviceModel>
<domainServices>
  <endpoints>
    <add name="OData" type="System.ServiceModel.DomainServices.Hosting.ODataEndpointFactory, System.ServiceModel.DomainServices.Hosting.OData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    <add name="Soap" type="Microsoft.ServiceModel.DomainServices.Hosting.SoapXmlEndpointFactory, Microsoft.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    <add name="Json" type="Microsoft.ServiceModel.DomainServices.Hosting.JsonEndpointFactory, Microsoft.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </endpoints>
</domainServices>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />

В MyDomainService есть:

    [Query(IsDefault=true)]
    public IEnumerable<UserItem> GetUsers()
    {
        return this.ObjectContext.Users;
    }

Я пробовал следующие URL:

http://10.0.0.191:27070/Manager-Web-MyDomainService.svc/GetUsers

http://10.0.0.191:27070/Manager-Web-MyDomainService.svc/Soap/GetUsers

http://10.0.0.191:27070/Manager-Web-MyDomainService.svc/Json/GetUsers

http://10.0.0.191:27070/Manager-Web-MyDomainService.svc/OData/GetUsers

и я получаю только пустые страницы.

Я включил трассировку и в журнале вижу предупреждение "Контекст оценки конфигурации не найден".

Кто-нибудь, кто может мне помочь с этим?

Заранее спасибо, Ура, Джанлука.

1 Ответ

1 голос
/ 25 февраля 2011

Хорошо, я перебрал почти все.Моя конфигурация была правильной.Проблемы были в другом месте.Позвольте мне поделиться своими выводами:

Прежде всего, я обнаружил, что OData требует '/' в конце URL.Кроме того, я ошибочно полагал, что необходимо вспомнить URL-адрес службы с именем метода в конце.Что-то вроде: http: /// oData /.Оказалось, что, просто позвонив по адресу http: /// oData /, я получил все ожидаемые данные.

Напротив, Джсон не хочет трейлинг "/".Правильный URL-адрес выглядит так: http: /// Json /.На этот раз необходимо было указать метод.Я также начинаю лучше понимать значение атрибутов Query, Invoke и т. Д. Оформленный в INVOKE метод представляется как JSON, только если он имеет свойство HasSideEffect = false.

У меня все еще проблемы с использованием тех же методов через SOAP.Если кто-то хочет внести свой вклад и помочь мне, пожалуйста, не стесняйтесь добавлять больше информации здесь.Я опубликую больше информации, как только получу дальнейшие результаты.

Приветствия, Джанлука.

...