è necessario guardare fondamentalmente a tre opzioni:
1) Hosting in IIS6 (Windows Server 2003/2003 R2): in questo scenario, è possibile ospitare solo protocolli HTTP - nient'altro. Questa è una vera e propria limitazione di per sé, non puoi usare ad es. netTcp per scenari Intranet.
2) Hosting in IIS7/WAS (Vista, Server 2008): questo offre più opzioni in termini di protocolli supportati e l'ambiente di hosting sembra inizialmente un vincitore.
3) Self-hosting: in questo scenario, sta totalmente a te fare tutto il necessario per ospitare ed eseguire i tuoi servizi.
Se si disattiva l'opzione # 1 per ora (se si dispone solo di IIS6, utilizzerei sempre l'auto hosting), è verso IIS7 rispetto all'hosting automatico.
IIS7 fornisce "attivazione su richiesta", ad es. il tuo codice di servizio non è in memoria in ogni momento, ma verrà caricato e istanziato una volta che arriva una richiesta. Questo può essere un vantaggio.
D'altra parte, l'hosting in IIS7/WAS ti priva della capacità di specificare i tuoi endpoint: il tuo endpoint e quindi l'indirizzo di servizio è la directory virtuale in cui risiede il tuo file "MyService.svc". Non puoi cambiarlo in alcun modo, forma o forma.
Self-hosting può sembrare un lavoro molto lungo, ma ti offre la massima flessibilità: puoi scegliere i protocolli a tuo piacimento, puoi impostare il tuo schema di indirizzamento nel modo che preferisci e hai controllo totale su ciò che viene fatto quando. È possibile introdurre il proprio ServiceHost personalizzato se è necessario fare del lavoro extra per ospitare i servizi e così via.
A meno che non stiate solo giocando un po 'con WCF, consiglierei e voterò sempre per l'auto-hosting - se è necessario che il servizio WCF sia sempre in esecuzione, all'interno di un servizio di Windows NT (questa è la soluzione migliore per ambienti di produzione) e, se si sta sviluppando/eseguendo il debug, è possibile ospitare completamente i servizi WCF in un'app console che è possibile avviare e interrompere a proprio piacimento.
Quindi, per farla breve: alla fine, se si vuole veramente controllare ciò che sta accadendo, consiglierei sempre il self-hosting.
Questo potrebbe cambiamento una volta che la nuova "Dublin" server-Addon da Microsoft viene fuori - qualche tempo dopo .NET 4 viene lanciato, probabilmente all'inizio del 2010 - ma questo è ancora troppo presto per dirlo.
Spero che questo aiuti.
Marc
Conosci davvero la tua WCF. – Contango
@Gravitas: grazie! Ho imparato dal Master WCF :-) (Juval Lowy) –
Ciao, quasi 5 anni dopo, potresti aggiornare la tua risposta con l'ultima versione di WCF e IIS? Inoltre, pensi che le funzionalità di Windows Services Recycling siano efficienti come quelle di IIS? Grazie! – Nock