Nouvelles Chroniques d'Amethyste

Penser au Sens, pas au Verbe

Se passer de fichier svc

Poster un commentaire

Cet article est le troisième d’une série:

https://amethyste16.wordpress.com/2013/05/18/programmer-avec-les-services-2/

En général ce fichier ne contient pas grand-chose, juste quelques configurations qui pourraient tout aussi bien trouver leur place dans le fichier de configuration.

C’est justement une des nouvelles fonctionnalités de WCF 4.

Comme précédemment créons un projet Web appelé Host. Ajoutons aussi une référence à System.ServiceModel.

Dans le répertoire Services on va ajouter IDemoWcfService ainsi que DemoWcfService.cs. La seule différence est que l’on n’a pas de fichier svc. On en profite pour adapter les espaces de noms.

Ouvrons le fichier web.config et ajoutons cette déclaration.

<system.serviceModel>

    <serviceHostingEnvironment>

        <serviceActivations>

            <addrelativeAddress=« Services/DemoWcfService.svc« service=« Host.Services.DemoWcfService«  />

        </serviceActivations>

    </serviceHostingEnvironment>

</system.serviceModel>

 C’est terminé, le service est prêt à être consommé à l’adresse ~/services/DemoWcfService.svc.

Si on souhaite rendre publiable les métas données afin que le client construise automatiquement le proxy, il faut ajouter un behavior selon une des méthodes indiquées sur la page qui s’affiche :

<behaviors>

        <serviceBehaviors>

          

            <behaviorname=«  »>

                <serviceMetadatahttpGetEnabled=« true«  />

            </behavior>

        </serviceBehaviors>

    </behaviors>

Et hop :

bb

Coté code client rien de très différent:

nn

Bien sûr un point de communication adapté à notre contexte doit être configuré. On le fera comme précédemment avec un SeviceHostFactory déclaré ainsi :

<serviceHostingEnvironment>

    <serviceActivations>

        <add

factory=« System.ServiceModel.Activation.WebScriptServiceHostFactory« 

relativeAddress=« Services/DemoWcfService.svc« 

service=« Host.Services.DemoWcfService«  />

    </serviceActivations>

</serviceHostingEnvironment>

 

Et tout doit fonctionner.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s