Création d'un service Web REST documenté basé sur Windows Exposer le service dans une application Web

Maintenant, il s'agit d'exposer le service dans une application Web. Comme indiqué dans les exigences, nous ne souhaitons pas créer de fichier svc physique. Voici déjà la configuration de notre service :


  <system.serviceModel>
<behaviors>
<serviceBehaviors>
name= »EssaiServiceBehavior »>
httpGetEnabled= »true » />
<dataContractSerializer />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
behaviorConfiguration= »EssaiServiceBehavior » name= »WebApp.Svc.EssaiService »>
address= »essaiservice.svc »
binding= »webHttpBinding«
contract= »WebApp.Svc.IEssaiService » />
<host>
<baseAddresses>
baseAddress= »http://localhost/webapp/svc » />
</baseAddresses>
</host>
</service>
</services>
aspNetCompatibilityEnabled= »true » />
</system.serviceModel>



La configuration est tout à fait classique. On notera que l'adresse de notre service correspond malgré tout à un document .svc. C'est en utilisant la notion d'activation par configuration que nous permettrons à WCF de retrouver ces billes. Pour cela, nous devons modifier la configuration pour y inclure les éléments d'activation, comme ci-après :


  aspNetCompatibilityEnabled= »true »>
<serviceActivations>
WebApp.Svc.EssaiService »
relativeAddress= »svc/essaiservice.svc »
factory= »Microsoft.ServiceModel.Web.WebServiceHost2Factory » />
</serviceActivations>
</serviceHostingEnvironment>


Ce faisant, cela pose un petit souci, car l'utilitaire de gestion de configuration WCF ne comprend pas l'élément "serviceActivations". Une fois cet élément présent, il n'est plus possible d'utiliser cet utilitaire bien pratique.

La solution se trouve dans l'utilisation des fichiers de transformation de la configuration. Cette nouveauté de .net 4, permet d'appliquer des transformations au fichier de configuration en fonction de la configuration de la solution dans Visual Studio.