| Nicolas's profileFlying over Clouds ... (...PhotosBlogLists | Help |
|
7/3/2008 Silverlight 2 Beta 2 en tant client WCF : petit bug ConfigUnrecognizedElementQuand vous souhaitez utiliser un service wcf à partir de Silverlight 2 Beta 2, il faut faire attention aux bindings utilisés.
SL2B2 ne supporte (pour le moment) que SOAP 1.1 (c'est à dire le basicHttpBinding), alors que par defaut les .svc des applications ASP.NET sont exposés en SOAP 1.2 (wsHttpBinding).
Ce qui est déroutant c'est que Visual Studio 2008 (et les extension silverlight 2 beta2) ne signale pas les incompatibilités au moment de l'ajout de la référence au service.
Tout ce déroule correctement, le proxy est bien créé dans le projet sl2B2, tout compile, mais au moment de l'execution vous obtenez une erreur "ConfigUnrecognizedElement" !!
En fait le runtime silverlight vous indique que dans le fichier de config des références des services WCF (fichier xml : ServiceReferences.ClientConfig ) il y a des éléments xml inconnus ( = ne faisant pas parti du schéma XSD supporté par SL2B2).
En regardant ce fichier, on trouve l'utilisation d'un binding "wsHttpBinding", non supporté par SL2B2 (confirmé par l'intellisense qui ne propose que le basicHttpBinding).
Les extensions Silverlight 2 Beta 2 pour Visual Studio 2008 nous ont donc généré du code non supporté par Silverlight 2 Beta 2
Pour remédier à ce probleme, le plus simple (et le plus propre à mon sens) est d'exposer le service avec un basicHttpBinding.
Pour se faire, direction le fichier de configuration de votre projet web (web.config) contenant le service, et remplacez le binding du contrat exposé (dans ce cas ITekigoPlayerService)
< endpoint address="" binding="wsHttpBinding" contract="ITekigoPlayerService"><identity> <dns value="localhost" /> </identity> </endpoint> Par :
< endpoint address="" binding="basicHttpBinding" contract="ITekigoPlayerService"><identity> <dns value="localhost" /> </identity> </endpoint> Ensuite, dans votre projet Silverlight, faites un clic droit sur la références au service, et sélectionnez "Update Service Reference".
Visual Studio 2008 va vous regénérer les classes proxy, mais aussi le fichier de configuration qui sera enfin conforme au schéma supporté par silverlight 2 beta 2.
|
|
|