Silverlight: Comment configurer ServiceReferences.ClientConfig lorsqu'il est placé à l'intérieur de xap
Je suis en utilisant un service wcf avec mon application silverlight. L'emplacement de la wcf service est indiqué dans la ServiceReferences.ClientConfig fichier, et doivent être changés à l'emplacement où l'application est installée.
Cependant ce fichier est inclus dans le fichier xap, et n'est pas quelque chose qui peut être facilement changé lorsque l'application est déployée. Est-il une autre façon de faire de la référence à la wcf service de l'application silverlight? Ou comment voulez-vous changer le ServiceReferences.ClientConfig dans le fichier xap?
Vous devez vous connecter pour publier un commentaire.
Il peut y avoir de meilleures façons, dont je suis ouvert à l'aide, mais cela fonctionne pour moi, et il est flexible.
Dans votre Application Web Web.config, ajouter une variable dans AppSettings et de stocker l'URL de base, notez que je ne suis pas stocker l'emplacement du fichier SVC, je vais ajouter que plus tard. C'est parce que j'ai plusieurs SVC que j'ai l'habitude de point de. Vous pouvez choisir de le faire différemment.
Dans mon Application Web de la Page Web, ajouter un paramètre appelé InitParms, cela vous permet d'ajouter une liste de clés, paire (valeurs séparées par des virgules, qui sera lu par le fichier XAP)
Dans l'Application Silverlight.xaml.vb, chargez tous les InitParms dans une Ressource ou à l'endroit où vous voulez
Puis dans l'une de mes fichiers XAML je peux initialiser le service avec l'configuré URI, j'ai une méthode comme ceci
Excellent, avec ces suggestions, j'ai réussi à obtenir mon WCF ServiceReferences.ClientConfig de données à être modifié dynamiquement au démarrage de l'application, avec l'URI du Service de lecture à partir du web.config. C'est possible en utilisant le web".config transformations" dans VS2010.
Ici un exemple de web.config.debug, en montrant comment la ServiceURI est remplacé lorsque je choisis "publier" pour mon site web.
Dans ma base de web.config je puis avoir la même clé/valeur, pointant vers le local de service. Pas besoin de penser à changer le ServiceURI à chaque fois que je déployer de test et de production. Génial, j'ai été à la recherche pour que, pour un certain temps maintenant.
Trouvé une solution dans ce blog.
http://www.andybeaulieu.com/Default.aspx?tabid=67&EntryID=132
Ici la wcf point de terminaison de service est calculée à partir de l'emplacement de l'application silverlight
Les solutions présentées ici tous les irréalisable dans le sens que vous modifiez votre application pour s'adapter à votre configuration. Cette l'entrée de blog cloué.