2010-06-28 123 views
0

我创建了一个新的Silverlight应用程序,因此我有一个名为“SilverlightOnLineChess.Web”的Web项目和名为“SilverlightOnlineChess.Client”的Silverlight应用程序。在此解决方案中,我创建了一个名为“SilverlightOnlineChess.Data”的新WCF RIA Services类库,并在此过程中创建了名为“SilverlightOnlineChess.Data.Web”的关联Web项目。我在“SilverlightOnlineChess.Data.Web”项目中创建了必要的实体数据模型和域服务类,并确保我检查了“Expose OData端点”。通过WCF RIA服务公开OData

一切工作正常,并通过应用程序查看数据丹迪。但是,如果我尝试点击该网址以查看OData带回的内容,如下所示: “http://localhost:49771/SilverlightOnlineChess-Data-Web-OnlineChessService.svc/OData/”它不知道此网址是什么。它只适用于在主Web项目“SilverlightOnLineChess.Web”中创建服务和实体模型而不是“SilverlightOnLineChess.Data.Web”。

所以,现在如果我输入了网址为:

http://localhost:49771/SilverlightOnlineChess-Web-OnlineChessService.svc/OData/”,它带回的元数据。

任何想法?发生

回答

0

的服务的URL如下:

命名空间+类型名称与由虚线随后的.svc/OData的/代替点的域的服务。

这一点,你需要通过添加

[Query(IsDefault = true)] 

要公开查询以上揭露查询的OData之后。

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文件\微软的SDK \ RIA服务\ 1.0 \图书馆\服务器\ System.ServiceModel.DomainServices.Hosting.OData.dll

您可以通过选择显示所有文件来查看客户端项目,以确保您正在寻找适合您的OData服务的正确URL。转到Generated_Code \ ProjectName.Web.g.cs。查找Service.svc。这将是您的OData服务的根URI。如果您将您的域名服务置于Service文件夹下,它将为Service/YourServiceName.svc/OData /。