C'est encore moi! :o)
J'ai voulu travailler ce soir avec Silverlight 2 Beta 2 et Ado.Net Data Services et je me rend compte qu'il y a un petit soucis lorsque l'on veut consommer le service de données.
Context:
- J'ai un projet web qui host mon ADO.Net Data Service
- J'ai un 2eme projet Silverlight qui consomme le service
Extrait de mes méthodes :
private void btnGetData_Click(object sender, RoutedEventArgs e)
{
MyWebDataService myContainer = new MyWebDataService(new Uri("http://localhost:3204/MyWebDataService.svc", UriKind.Absolute));
var query = (from u in myContainer.Motifs where u.MOT_STATE == true select u);
myContainer.Motifs.BeginExecute(new AsyncCallback(OnLoadComplete), query);
}
void OnLoadComplete(IAsyncResult result)
{
DataServiceQuery<Motifs> query = (DataServiceQuery<Motifs>)result.AsyncState;
List<Motifs> lst = query.EndExecute(result).ToList();
}
Au moment où je veux faire le "BeginExecute" j'ai systématiquement le message :
System.InvalidOperationException occurred
Message="Failed to Invoke: callOpen."
Si je prend la requête générée : "http://localhost:3204/MyWebDataService.svc/Motifs()?$filter=MOT_STATE%20eq%20true" et que je l'execute dans mon browser, je récupére un résultat.
Après quelques recherche sur le net, j'ai trouvé une explication.
L'installation du SP1 (VS 2008 SP1 et/ou Framework 3.5 SP1) provoque ce problème.
Le Client "System.Data.Services.Client" de Silverlight 2 Beta 2 n'est plus compatible avec les composants server du Framework 3.5 SP1
Il semblerait qu'il faille attendre la version release de Silverlight 2 (Prévu pour la fin d'été 2008) pour avoir une mise à jour du client.
Si quelqu'un a des news ou des astuces que je n'aurais pas trouvées, n'hesitez pas à en faire partager tout nos lecteurs. ;o)
@+ pour de nouvelles aventures.
Christophe REZENTHEL