2010-06-28 21 views
0

J'ai créé une nouvelle application Silverlight, j'ai donc un projet Web appelé "SilverlightOnLineChess.Web" et l'application Silverlight "SilverlightOnlineChess.Client". Dans cette solution, j'ai créé une nouvelle bibliothèque de classes WCF RIA Services appelée "SilverlightOnlineChess.Data" et, ce faisant, crée le projet Web associé appelé "SilverlightOnlineChess.Data.Web". J'ai créé le modèle de données d'entité et les classes de service de domaine nécessaires dans le projet "SilverlightOnlineChess.Data.Web" et vérifié que j'ai coché "Expose OData endpoint".Affichage d'OData via les services WCIA RIA

Tout fonctionne bien et dandy pour afficher des données via l'application. Cependant, si j'essaye de frapper l'url pour voir ce que l'OData ramène comme dans: "http://localhost:49771/SilverlightOnlineChess-Data-Web-OnlineChessService.svc/OData/" il ne sait pas ce qu'est cette URL. Cela ne fonctionne que si je crée les services et le modèle d'entité dans le projet web principal "SilverlightOnLineChess.Web" et non "SilverlightOnLineChess.Data.Web".

Alors maintenant, si j'entrez l'URL comme dans:

"http://localhost:49771/SilverlightOnlineChess-Web-OnlineChessService.svc/OData/", il ramène les métadonnées.

Des idées?

Répondre

0

L'URL du service se déroule comme suit:

+ Namespace typename pour le service de domaine avec des points remplacés par des tirets suivis par .svc/OData /.

Après cela, vous avez besoin d'exposer les requêtes à OData en ajoutant

[Query(IsDefault = true)] 

au-dessus de vos questions que vous souhaitez exposer.

0

Pour exposer un point final OData, vous devez vous assurer que vous avez les éléments suivants dans votre 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> 

Vous devez également vous assurer que vous referening les DLL suivantes:

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

Vous pouvez vous assurer que vous cherchez la bonne URL pour votre service OData en regardant dans votre projet côté client avec Afficher tous les fichiers sélectionnés. Accédez à Generated_Code \ ProjectName.Web.g.cs. Faire une recherche pour Service.svc. Ce sera l'URI racine de votre service OData. Si vous placez votre service de domaine sous un dossier Service, ce sera Service/YourServiceName.svc/OData /.