2010-06-28 4 views
0

Я создал новое приложение Silverlight, поэтому у меня есть веб-проект под названием SilverlightOnLineChess.Web и приложение Silverlight, называемое SilverlightOnlineChess.Client. В этом решении я создал новую библиотеку классов WCF RIA Services, называемую «SilverlightOnlineChess.Data», и при этом создает связанный веб-проект под названием «SilverlightOnlineChess.Data.Web». Я создал необходимую модель данных сущности и классы обслуживания домена в проекте «SilverlightOnlineChess.Data.Web» и убедился, что я проверил «Expose OData endpoint».Публикация OData через службы WCF RIA

Все работает отлично и dandy для просмотра данных через приложение. Однако, если я попытаюсь нажать на URL-адрес, чтобы увидеть, что возвращает OData, как в: «http://localhost:49771/SilverlightOnlineChess-Data-Web-OnlineChessService.svc/OData/« он не знает, что это за URL. Он работает только в том случае, если я создаю модель сервисов и сущностей в основном веб-проекте SilverlightOnLineChess.Web, а не в «SilverlightOnLineChess.Data.Web».

Так что теперь, если я вхожу в URL, как в:

"http://localhost:49771/SilverlightOnlineChess-Web-OnlineChessService.svc/OData/", он возвращает метаданные.

Любые идеи?

ответ

0

URL-адрес службы происходит следующим образом:

пространство имен + Ьурепате для службы домена с точками заменены на тире с последующим .svc/OData /.

После этого необходимо выставить запросы к OData путем добавления

[Query(IsDefault = true)] 

выше ваших запросов, которые вы хотите выставить.

0

Выставить конечную точку OData, вы должны убедиться, что вы следующий в вашем Web.config:

<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" /> 
     </endpoints> 
    </domainServices> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />  
    </system.serviceModel> 

Вы также должны убедиться, что вы referening следующие библиотеки DLL:

System.ServiceModel.DomainServices.Hosting.OData C: \ Program Files \ Microsoft \ SDKs RIA Services \ v1.0 \ Библиотеки \ Server \ System.ServiceModel.DomainServices.Hosting.OData.dll

Вы можете убедиться, что ищете правильный URL-адрес своей OData-службы, просмотрев в своем клиентском проекте с помощью Show All Files selected. Перейдите в Generated_Code \ ProjectName.Web.g.cs. Найдите find для Service.svc. Это будет корневой URI вашего сервиса OData. Если вы поместите свою службу домена в папку «Служба», это будет Service/YourServiceName.svc/OData /.

Смежные вопросы