0

新しい Silverlight アプリケーションを作成したので、"SilverlightOnLineChess.Web" という Web プロジェクトと "SilverlightOnlineChess.Client" という Silverlight アプリを作成しました。このソリューションでは、「SilverlightOnlineChess.Data」という名前の新しい WCF RIA サービス クラス ライブラリを作成しました。これにより、「SilverlightOnlineChess.Data.Web」という名前の関連する Web プロジェクトが作成されます。「SilverlightOnlineChess.Data.Web」プロジェクトで必要なエンティティ データ モデルとドメイン サービス クラスを作成し、「OData エンドポイントを公開する」を確認しました。

アプリを介してデータを表示するために、すべてがうまく機能します。ただし、OData が返す内容を確認するために URL にアクセスしようとすると、次のようになります。 . 「SilverlightOnLineChess.Data.Web」ではなく、メイン Web プロジェクト「SilverlightOnLineChess.Web」でサービスとエンティティ モデルを作成した場合にのみ機能します。

したがって、次のようにURLを入力すると:

" http://localhost:49771/SilverlightOnlineChess-Web-OnlineChessService.svc/OData/ "、メタデータを返します。

何か案は?

4

2 に答える 2

0

サービスの URL は次のようになります。

ドメイン サービスのネームスペース + タイプ名。ドットはダッシュに置き換えられ、その後に .svc/OData/ が続きます。

この後、追加してクエリを OData に公開する必要があります

[Query(IsDefault = true)]

公開したいクエリの上に。

于 2011-04-14T19:17:16.357 に答える
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>

また、次の 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-04-14T21:16:10.873 に答える