2010-10-09 6 views
0

J'ai une application Silverlight que je veux accéder au stockage Azure. J'ai deux projets dans ma solution: un projet SL et un rôle Web ASP.Visual Studio: Ajouter une référence de service au service dans un autre projet de ma solution?

Le rôle Web a un service. Quand je lance le projet, je vais au service, et ça fonctionne bien. (Je suis en mesure de télécharger les données.)

Je ne suis pas tout à fait sûr de ce que je peux faire à travers "Ajouter une référence de service", mais je soupçonne que c'est peut-être ce que je suis censé faire ici pour faire usage de la pleine puissance de WCF. J'ouvre la boîte de dialogue, et cliquez sur "Découvrir" pour trouver des services dans ma solution. Visual Studio trouve mon service, mais lorsque je clique sur "Go", il échoue avec une erreur 404. Ce n'est pas vraiment surprenant, étant donné que mon serveur ASP localhost n'est pas opérationnel pour le moment.

Il semble que je devrais être en mesure d'ajouter la référence de service lorsque devserver est en cours d'exécution, mais Visual Studio a l'élément de menu à faire grisé.

Que suis-je censé faire ici? Suis-je complètement confus au sujet de ce que les références de service sont? Dois-je simplement utiliser WebClient, coder en dur l'URI et désérialiser le XML en objets moi-même?

Répondre

0

Je pense que l'utilisation de WebClient est probablement exagérée. Je ne voudrais pas ré-implémenter simplement pour contourner un problème d'utilisabilité de Visual Studio (même si c'est tentant).

Essayez d'ouvrir les projets séparément. J'entends par là l'ouverture de deux Visual Studios, l'un avec le service web et l'autre avec l'application Silverlight. Exécutez le service Web (afin que vous puissiez le faire fonctionner dans un navigateur), puis créez une référence de service directement à l'URL du service exécuté en mode débogage dans l'autre Visual Studio. Une fois la référence de service créée et tous les proxys construits, vous n'aurez plus besoin de le faire à moins de changer l'interface du service.

2

La réponse de James fonctionnera. Cependant, une option plus simple si vous avez des projets de service et de consommation dans la même solution consiste à utiliser le bouton "Découvrir" à droite du bouton "Aller" dans la boîte de dialogue "Ajouter une référence de service". Si vous cliquez sur la petite flèche, vous verrez "Services en solution". Ainsi, VS recherchera la solution pour tous les services valides que vous avez implémentés et vous n'aurez donc pas besoin de faire fonctionner le service à ce moment-là.

Une autre option consiste à exécuter le service localement sous IIS.

+0

Nous l'avons essayé, mais notre application WPF est l'hôte, et le projet client ne "découvre" rien. Apparemment parce que nous faisons toute la configuration par programmation au lieu d'utiliser les fichiers de configuration. –

Questions connexes