2011-05-06 2 views
5

Bon les gars, je fais appel à vos intellects combinés. J'ai une application web avec une application Silverlight qui appelle un service RIA. Le service ria est défini dans l'application Web et tout le reste est juste dandy.Besoin de conseils pour appeler le service WCF de Silverlight 4

Le problème est le suivant.

Je crois comprendre que pour que l'application Silverlight puisse parler et savoir ce qu'est le service ria, vous devez ajouter une référence de service pour ce service. La référence de service définit le service ria et configure la liaison de connexion. L'un des fichiers qu'il ajoute est le ServiceReference.ClientConfig qui a la connexion de liaison en elle. Au cours du développement de cette application, c'est ainsi qu'elle a été mise en place. Et cela a fonctionné parfaitement bien localement et sur le serveur de dev.

Malheureusement, des problèmes sont survenus lors du déploiement sur le serveur interne du client. À ce stade, j'étais sur d'autres projets pendant que mon collègue continuait le déploiement. Il est vite devenu frustré par les erreurs loufoques qui se produisaient et a recruté de l'aide. Ce dev est arrivé et, bien que cela a fonctionné, mais pour ce faire il a supprimé la référence de service du projet Silverlight mais a laissé le ServiceReference.ClientConfig qui indiquait l'emplacement du service dans l'application web (mais c'est tout, pas de définition ou explication quant à ce que le service fait et je ne suis pas sûr de savoir comment l'application Silverlight est censé savoir comment travailler avec elle ..). Cela fonctionne parfaitement sur mon poste de travail de collègues et il a bien déployé cette version sur le serveur des clients.

Lorsque j'ouvre le projet, il ne fonctionne pas du tout. Et la raison en est qu'il ne sait pas quel est le service que j'utilise dans le code. Plus précisément, il ne sait pas où cela (les noms ont changé de clarification):

Imports SilverlightApp.ServiceReference.WebApp.Service

J'ai nettoyé la solution, complètement effacé et obtenu le dernier du contrôle de source, construit l'application Web d'abord et assuré le serveur de développement asp.net était en cours d'exécution afin que l'adresse dans le ServiceReference.ClientConfig résolu correctement. Mais, hélas, il ne sait toujours pas ce qu'est Imports SilverlightApp.ServiceReference.WebApp.Service. Donc, pour que cela fonctionne sur mon poste de travail, j'ai ajouté le ServiceReference mais j'ai gardé les liaisons de connexion actuelles pour qu'elles correspondent au point de terminaison dans la configuration web de l'application Web. et a changé la déclaration d'importation à Imports SilverlightApp.ServiceReference et tout fonctionne bien.

Quelle est la raison de cette folie?!?!

Répondre

2

Toutes les choses dont vous parlez se rapportent à un service WCF et non à un service WCF RIA. Ils fonctionnent de manière très différente lorsqu'ils sont consommés dans votre application client.

Un service WCF nécessitera une référence de service et le ServiceReference.ClientConfig.

Un service WCF RIA non. Le lien vers le service WCF RIA est défini dans les propriétés du projet Silverlight dans l'onglet Silverlight en bas. Lorsque vous le générez, le code de contexte côté client est généré dans le dossier Generated_Code. Afficher tous les fichiers et vous le verrez.

Espérons que ça aide?

Kevin

+0

Aha. Cela aurait beaucoup de sens. Mon collègue a le dossier Generated_WCF_Code, alors que non. Cependant, j'ai mis le lien dans les propriétés du projet et il ne me laissera toujours pas construire – keynone

+0

Quelles sont les erreurs de construction?Avez-vous tous les outils WCF RIA Service installés? Regardez également les paramètres de votre projet de site Web et vérifiez que votre application Silverlight est répertoriée dans l'onglet des applications Silverlight. –

+0

Les erreurs de génération se produisent lorsque j'essaie d'instancier un client de service et d'y effectuer des appels. La référence d'importation ne se résout pas lorsque j'ouvre le projet sur mon poste de travail. Et oui, les paramètres du projet web sont corrects et j'ai une boîte à outils de services ria. Et merci pour votre aide :) – keynone

Questions connexes