Attivazione dei servizi senza il file svc con WCF 4.0

di Cristian Civera, in Windows Communication Foundation,

Tra i vantaggi che si ottengono creando servizi attraverso Windows Communication Foundation vi è la possibilità di esporli attraverso molteplici binding (HTTP, net.tcp, ecc), sfruttando IIS e WAS.

L'unica scomodità richiesta è quella di dover distribuire anche il file svc su IIS per poter mappare l'estensione sul factory di WCF e attivare così il servizio. Questo file spesso contiene solo la direttiva del servizio da usare, perciò in WCF 4.0 è stata inserita la possibilità di specificare tramite web.config un mapping tra servizio, ServiceHostFactory e percorso virtuale da utilizzare, evitando di distribuire fisicamente il file svc.

Ecco quindi come specificare l'attivazione per Service.svc

<system.serviceModel>
  <serviceHostingEnvironment>
    <serviceActivations>
      <!-- Attivazione file less (togliere aspnet compatibility) -->
      <add service="ASPItalia.MyService"
           relativeAddress="~/Service.svc" />
    </serviceActivations>
  </serviceHostingEnvironment>
</system.serviceModel>

L'attributo relativeAddress non è obbligatorio perché può essere dedotto dal nome del servizio. Nel caso, come nello snippet, lo si specifichi, è necessario indicare l'estensione del file. Facoltativamente possiamo specificare, con l'attributo factory, il ServiceHostFactory da utlizzare.

E' importante sottolineare che non è possibile usare questo tipo di attivazione su servizi che fanno uso della AspNetCompatibility.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi