7
votes

Comment accéder au service WCF RIA du service Windows?

J'ai une application fonctionnelle Silverlight 4 (VS2010, SL4, WCF RIA, hébergé sur ma boîte de devise à l'aide de Cassini, Windows 7 de 64 bits). Dans le répertoire Clientbin, j'ai un fichier .svc qui décrit mon service: xxx

lorsque je navigue sur http: // localhost: 52878 / clientbin / myApp-Services-myService.svc Je vois ce qui suit:

Vous avez créé un service. Tester Ce service, vous devrez créer un client et utilisez-le pour appeler le un service. Vous pouvez faire cela en utilisant le SVCutil.exe outil de la ligne de commande Avec la syntaxe suivante: svcutil.exe http: // localhost: 52878 / clientbin / myApp-Services-Myservice .svc? WSDL

Je veux accéder à ce service à partir d'une application de service Windows. Je crois comprendre que j'ai besoin d'activer les points de fin de savon afin de faire cela. Donc, j'ajoute ce qui suit à mon fichier web.config: xxx

Premièrement, Intellisense se plaint de la présence de la balise, en disant:

Le système d'élément.ServiceModel a Élément enfant non valide Domainservices.

Deuxièmement, l'application Silverlight susmentionnée cesse de fonctionner, probablement parce que ce changement enfreint les services Web sous-jacents.

troisièmement, il apparaît que le système.ServiceModel.Domainsting.Hosting Assembly ne contiennent effectivement le type SOAPXXMLENDPESSORY; Si j'essaie de parcourir le service après avoir ajouté ce qui précède à web.config, je vois:

ne pouvait pas charger de type 'System.servicemodel.domainservices.hosting.soapxmlendPointFactory' de l'assemblée 'System.ServiceModel.Domainservices.Hosting, Version = 4.0.0.0, culture = neutre, PublickeyToken = 31bf3856ad364E35 '.

Si j'inspecte l'assemblage à l'aide du réflecteur, je vois qu'il contient les types de DomainServiceEventPointPactory et POXBINAINDENDAnDactory, mais pas de SOAPXMENDPOeFactory.

Quelqu'un pourrait-il me laisser savoir comment je devrais faire cela? Je ne peux pas croire que cela devrait être si difficile de consommer un service de WCF RIA dans une autre application Silverlight!


1 commentaires

Quelques suggestions du forum SL ( forums.silverlight.net/forums/p/180880 /409333.cx ) Inclure la copie de réglage local sur true sur le système System.ServiceModel.domainsting.Hosting Assembly (ne fonctionne pas comme le problème est que le type spécifié est absolu de cet ensemble) et en garantissant que le .NET. Framework 4.0 est installé (c'est).


4 Réponses :




4
votes

au lieu de ...

système.servicemodel.domainservices.Hosting

Utilisez l'assemblage ...

microsoft.servicemodel.domainservices.hosting

de la boîte à outils de WCF RIA Services. Il contient le type SOAPXMLENDPOeFactory .

L'emplacement par défaut est ... % des fichiers de programme% \ microsoft sdks \ ria services \ v1.0 \ toolkit \ bibliothèques \ serveur


1 commentaires

Merci! Il m'a fallu un moment pour voir la différence entre les deux dlls.



1
votes
<sectionGroup name="system.serviceModel">
  <section name="domainServices" type="System.ServiceModel.DomainServices.Hosting.DomainServicesSection, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" allowDefinition="MachineToApplication" requirePermission="false" />
</sectionGroup>
Declare this in the ConfigSections. It's important to include the sectionGroup correctly

0 commentaires