9
votes

Pouvez-vous utiliser des services WCF avec Windows Phone 7?

Je n'ai pu trouver que quelques personnes en ligne en mentionnant cela, et cela semble être aussi simple pour eux que d'ajouter la référence de service.

Toutefois, lorsque j'essaie d'ajouter une référence de service pour mon service WCF (qui fonctionne correctement dans une application de console régulière, j'ai réglé la WCF comme le problème) Je reçois une foule d'erreurs.

  • AVERTISSEMENT 5 AVERTISSEMENT D'OUTILS PERSONNALISÉS: Aucun point de terminaison compatible avec Silverlight 3 a été trouvé. La classe cliente générée ne sera utilisée que si les informations de terminaison sont fournies via le constructeur.
  • AVERTISSEMENT 6 AVERTISSEMENT D'AVERTISSEMENT PERSONNALISÉS: Une exception a été lancée par la cible d'une invocation.
  • AVERTISSEMENT 2 AVERTISSEMENT D'OUTIL PERSONNALISÉS: Impossible d'importer WSDL: PortType Détail: Une exception a été lancée lors de l'exécution d'une extension d'importation WSDL: System.ServiceModel.description.DataContractSerialIzerSagecontractemporter
  • ERREUR: Impossible de charger le type 'System.Runtime.Serialization.DatacontractSetSet' de Assembly 'System.Runtime.Sérialization, version = 2.0.5.0, Culture = neutre, PublickeyToken = 7cec85d7bea7798e'.
  • AVERTISSEMENT 4 AVERTISSEMENT D'OUTILS PERSONNALISÉS: Impossible d'importer WSDL: port Détail: une erreur a été une erreur importante d'une WSDL: Reliure que le port WSDL: le port dépend de.
  • AVERTISSEMENT 3 AVERTISSEMENT D'OUTIL PERSONNALISÉS: Impossible d'importer WSDL: Reliure Détail: une erreur a été une erreur importante d'un WSDL: PortType que le WSDL: la liaison dépend de.
  • Erreur 7 Erreur de l'outil personnalisé: Impossible de générer du code pour la référence de service 'Servicereference'. Veuillez vérifier d'autres messages d'erreur et d'avertissement pour plus de détails.

    Je trouve qu'il est étrange que la première erreur mentionne Silverlight 3, car je viens de désinstaller et réinstallé tous mes outils de développement pour vous assurer d'utiliser la dernière version de .NET et Silverlight.

    Ces erreurs ressemblent à celles que je vois si j'essaie de créer un nouveau projet Silverlight et ne cochez pas la case "Activer les services de WCF RIA". Je n'ai pas été en mesure de trouver des moyens pour permettre au WP7, si c'est bien le problème.

    Toute aide de vos gentlemens savants (et douze femmes) seraient très appréciées.


0 commentaires

7 Réponses :


7
votes

mmmm, je viens de modifier la configuration de référence de service en anontir la case "Type de réutilisation ....", puis mettez la mise à jour fonctionnée et a généré le fichier de configuration de service. Je ne sais pas si cela vous aidera à vous aider?


1 commentaires

+1, j'ai eu ce problème avec le service de traduction MS et cela semblait le réparer



7
votes

N'oubliez pas que Silverlight - même pour le téléphone Windows, qui utilise une version spécialisée de Silverlight 3 - ne fonctionne pas avec toutes les liaisons de service / points de terminaison de WCF, mais ne prend en charge qu'un sous-ensemble (qui exclut les liaisons WS-HTTP, par exemple.) Votre pari le plus simple consiste à créer votre service WCF pour les applications Silverlight à l'aide du modèle "Service WCF activé par Silverlight" dans Visual Studio (sous Add / nouvel élément / Silverlight).

Cette entrée de blog ( http://blogs.msdn.com/b/silverlightws/archive/2009/03/20/What -s-New-with-web-services-in-Silverlight-3-beta.aspx ) du blog de l'équipe Silverlight WCF devrait éclairer des possibilités. Vous voudrez peut-être consulter son blog entier ( http: //blogs.msdn .Com / B / Silverlightws / ), comme il a des articles intéressants à la manière et à gotcha.


0 commentaires

7
votes

J'ai couru dans la même erreur et j'ai modifié le type de collecte sur System.Collections.Generic.List au lieu de System.Collections.ObjectModel.observablecollections. C'était étrange depuis que je n'ai même pas coché la case pour "Générer toujours des contrats de messages".

espère que cela aide.


0 commentaires

1
votes

Ce problème s'est produit lorsque vous exécutez le studio Visual avec privilège d'administrateur. Ce que vous pouvez faire pour une solution de contournement est exécuté le Studio Visual Studio sans administrateur, ajoutez la référence du service Web qui générera les classes de proxy et fermera la solution. Ouvrez à nouveau la solution de projet dans Visual Studio avec privilège d'administrateur. Un rapport de bogue déjà fichier dans Microsoft Connect.

https://connect.microsoft.com/visualstudio/feedback/details/624984/Error-warnings-Quand-Adding-web-reference-on-windows-phone-7-projecte? wa = wsignin1.0


1 commentaires

J'ai couru dans ce cadre tout en développant une application Windows Phone 7 avec un backend Windows Azure. Le tissu de développement local Windows Azure nécessite de fonctionner en tant qu'administrateur. Merci Ken!



0
votes

Oui c'est une erreur étrange. Vous serez capable de retourner des chaînes, des entiers, etc., mais tout ce qui est comme ArrayList et ainsi de suite, vous obtiendrez cette erreur.

Il n'y a rien de mal avec votre code, il n'y a qu'un bug avec vs. Microsoft l'a corrigé (check Service Packs) mais si vous programmez pour Windows Phone 7, le bogue est toujours là.

Vous avez supprimer le service, puis le dossier BIN et Obj. Sauver et fermer vs. Ensuite, redémarrez le projet, ajoutez le service Ref (ne pas déboguer / exécuter l'application). Oh oui faire une sauvegarde en premier. Ça devrait aller. Vous devrez peut-être répéter ce processus à chaque fois que vous mettez à jour le service.

Cela devrait le réparer, sinon, vous devrez peut-être ouvrir un nouveau projet ou si possible recréer le site Web.


0 commentaires

0
votes

La réponse est oui, vous pouvez accéder aux services de WCF à partir de WP7, et comme une affiche précédente notée, il ne prend que prend en charge WS-HTTP. Dans le cas où vous essayez d'accéder à un service WCF pour une application Silverlight, il y a quelques points à faire:

  1. Mettez à jour votre boîte à outils Silvleright au plus tard. Allez-le de CodePlex Li>
  2. Ajoutez une référence à microsoft.servicemodel.domainservices.hosting em> à votre projet Silverlight. li>
  3. aller sur le web.config et ajoutez le point de terminaison SOAP: P>

    http://localhost[:port]/Services/myApplication-Web-Services-SuperService.svc
    
  4. Ajoutez la référence de service. "Mais, quel Uri?" tu demandes. L'adresse de votre service est celle-ci: [Espace de noms de votre service RIA] - [Nom de classe de votre service RIA] .svc code> où . Code> sont remplacés par - . Donc, si j'ai créé mon service à l'intérieur d'un répertoire des services dans mon application SL et l'espace de noms ressemble à ceci: p>

    namespace myApplication.Web.Services
    {
        [EnableClientAccess()]
        public class SuperService ....
    


0 commentaires

0
votes

Les suivants ont résolu mon problème:

J'ai créé un nouveau projet WP7 ajouté le service WCF.

Puis j'ai copié le dossier de références de service dans l'annuaire de mon projet qui m'a donné ce problème et redémarré Visual Studio et construit l'application.

Vous devez obtenir des erreurs d'espace de noms à l'intérieur de votre référence.cs ; Il suffit de changer l'espace de noms vers l'espace de noms actuel du projet.


0 commentaires