Archive

Archive for février 2012

Astuce : [WCF] Exposer son service WCF sous IIS sans passer par la directive ServiceHost

Lorsqu’on veut héberger son service WCF sous IIS nous utilisons la plupart du temps le template de fichier sous Visual Studio portant l’extension *.svc. Dans ce template nous devons effectuer un certain nombre de paramétrages pour que IIS puisse héberger le service et l’activer lors de la réception de la première requête client en utilisant la directive ServiceHost comme dans l’exemple ci-dessous :

<%@ ServiceHost Language= »C# » Debug= »true »  Service= »WebApplicationTest.MyService » CodeBehind= »MyService.svc.cs » %>

Une nouveauté venue avec la sortie de WCF 4.0 permet de ne pas utiliser le fichier template *.svc et par conséquent de ne pas utiliser la directive ServiceHost, mais de tout paramétrer via le fichier de configuration web.config comme suit :

<system.serviceModel>
  <serviceHostingEnvironment>
    <serviceActivations>
      <add service="WebApplicationTest.MyService" relativeAddress="MyService.svc" />
    </serviceActivations>
  </serviceHostingEnvironment>
</system.serviceModel>

Dans l’exemple ci-dessus, nous venons d’héberger notre service MyService sans passer par la directive ServiceHost du traditionnel fichier *.svc. Les seules choses dont il faut faire attention lors de la configuration sont :

  1. la présence de l’espace de noms de notre service dans l’attribut service.
  2. la présence obligatoire de l’extension .svc dans la valeur de l’attribut relativeAddress

Notez que vous pouvez aussi configurer le factory à utiliser via l’attribut factory.

Publicités
Catégories :Astuces, WCF Étiquettes :
%d blogueurs aiment cette page :