2010-11-08 6 views
0

Je me suis intéressé à WCF en ce qui concerne spécifiquement Silverlight. Est-ce que quelqu'un peut me dire si j'ai raison de penser que je peux créer un service WCF et exposer un point de terminaison TCP en utilisant un service Windows que mon application Silverlight peut utiliser?Principes de base de WCF avec un service Windows

J'ai réussi à exposer cela en utilisant IIS mais ce serait bien si nous pouvions contourner l'utilisation d'IIS car certains de nos clients ne l'aiment pas.

MISE A JOUR ...

OK J'ai créé une bibliothèque service WCF (RemoteClientLib avec IRemoteClients définir mes contrats de service et RemoteClients implémentant cette interface) et un service Windows pour héberger. J'ai ajouté un App.config aux deux projets qui ressemble à ceci:

<?xml version="1.0"?> 
<configuration> 
    <system.serviceModel> 
    <services> 
     <service name="RemoteClientLib.RemoteClients" behaviorConfiguration="remoteBehavior"> 
     <endpoint address="" binding="netTcpBinding" contract="RemoteClientLib.IRemoteClients" bindingConfiguration="remoteBinding"/> 
     <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/> 
     <host> 
      <baseAddresses> 
      <add baseAddress="net.tcp://localhost:4520/RemoteClients"/> 
      </baseAddresses> 
     </host> 
     </service> 

    </services> 
    <bindings> 
     <netTcpBinding> 
     <binding name="remoteBinding"></binding> 
     </netTcpBinding> 
    </bindings> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="remoteBehavior"> 
      <serviceMetadata/> 
      <serviceDebug includeExceptionDetailInFaults="true"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 
    <system.web> 
    <compilation debug="true"/> 
    </system.web> 

    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
</configuration> 

J'ai créé un programme d'installation de projet pour installer le service et a commencé en mais quand je tente d'ajouter une référence de service dans mon projet silverlight je reçois 'Aucune connexion n'a pu être établie car la machine cible l'a refusée' Y at-il quelque chose qui me manque?

+0

Le point de terminaison TCP est incompatible avec iis – Andrey

Répondre

1

This sample sur codeproject.com J'ai utilisé pour l'auto-hébergement des services WCF. Il serait assez simple de le construire dans un service Windows. Considérez Topshelf en tant que cadre de service Windows également.

+0

OK Merci pour les réponses. –

+0

Comment puis-je spécifier quel port/quel port le service utilisera pour s'y connecter avec mon client. L'utilisation d'IIS hébergeant le port est spécifiée dans les liaisons de site et n'est effectuée nulle part dans le code. –

+0

Le port est exprimé dans votre bibliothèque de services WCF .Config – kenny

0

Vous devriez être capable de le faire. Toutes les liaisons que vous pouvez utiliser dans IIS, vous devriez pouvoir utiliser avec l'auto-hébergement.

1

Vous pouvez créer un service Windows qui agit comme votre propre hôte. Voici un link aux différentes méthodes disponibles pour héberger un service WCF.

Questions connexes