【问题标题】:Exposing OData via WCF RIA Services通过 WCF RIA 服务公开 OData
【发布时间】:2010-06-28 00:17:36
【问题描述】:

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

一切正常,花花公子通过应用查看数据。但是,如果我尝试点击 url 来查看 OData 带回的内容,如下所示: "http://localhost:49771/SilverlightOnlineChess-Data-Web-OnlineChessService.svc/OData/" 它不知道这个 url 是什么。仅当我在主 Web 项目“SilverlightOnLineChess.Web”而不是“SilverlightOnLineChess.Data.Web”中创建服务和实体模型时,它才有效。

所以现在如果我输入如下网址:

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

有什么想法吗?

【问题讨论】:

    标签: ria wcf-ria-services odata


    【解决方案1】:

    服务的 URL 出现如下:

    域服务的命名空间 + 类型名,点替换为破折号,后跟 .svc/OData/。

    在此之后,您需要通过添加向 OData 公开查询

    [Query(IsDefault = true)]
    

    在您想要公开的查询之上。

    【讨论】:

      【解决方案2】:

      要公开 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>
      

      您还需要确保您引用了以下 DLL:

      System.ServiceModel.DomainServices.Hosting.OData C:\Program Files\Microsoft SDKs\RIA Services\v1.0\Libraries\Server\System.ServiceModel.DomainServices.Hosting.OData.dll

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

      【讨论】:

        猜你喜欢
        • 2011-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多