Qual è la differenza tra un'applicazione del servizio WCF e una libreria del servizio WCF?


118

Sto sviluppando un servizio Web WCF e ho utilizzato il modello di applicazione del servizio WCF per farlo.

La creazione di una "Applicazione di servizio WCF" soddisfa questo requisito? Quali sono i vantaggi di creare una libreria di servizi WCF rispetto a un'applicazione di servizio WCF?

Risposte:


148

Un'applicazione di servizio include un host del sito Web già configurato per te. Una libreria di servizi è una libreria di servizi a cui un host può fare riferimento e avviare.

Se inizi con una libreria di servizi (consigliata) puoi quindi scegliere qualsiasi host desideri (un servizio Windows, IIS / ASP.NET o anche un'applicazione console) e faresti semplicemente riferimento alla tua libreria dal tuo nuovo host. La scelta di un'applicazione di servizio limita il tuo host a solo IIS / ASP.NET (anche se questo potrebbe essere ok per i tuoi scopi, ma limiterà i protocolli che puoi utilizzare).

Modifica : le modifiche in IIS da quando ho scritto questo consentono una più ampia varietà di protocolli sui servizi attivati ​​ASP.NET, quindi la scelta di un'applicazione di servizio è molto meno limitante rispetto a prima.


1
Qualcuno ha informazioni sui nuovi protocolli / associazioni disponibili durante l'hosting su IIS?
Allen Rice

@ AndersonImes So che questo è un vecchio post, ma spero che tu possa aiutare. Ho cercato ovunque e non riesco a trovare se il servizio WCF è destinato a sostituire il servizio Web in .NET 3.5 e quindi perché il modello è stato rimosso in .NET 4? Grazie. :)
Chiramisu

2
@Chiramisu WCF offre molti più vantaggi e flessibilità ... Li ho trovati molto utili: Esempio di Codeproject , Domanda
Stackoverflow

@ Sam, grazie Sam, molto disponibile. Quindi fondamentalmente WCF può fare tutto ciò che un servizio Web può fare e altro ancora? Eventuali limitazioni mi chiedo ... :)
Chiramisu

1
@Chiramisu felice di aiutare! Ci sono sempre delle limitazioni, ma WCF ha molte meno limitazioni di un tipico servizio web, immagino.
StoriKnow

10

Se tutto ciò che hai è l'unico progetto, vedo solo una maggiore complessità se ti separi per il gusto di farlo. Ho usato una libreria quando ho avuto alcuni casi d'uso particolari in cui dovevo ospitare sia in un servizio Windows che in IIS.

Per IIS puoi spostare le classi e le interfacce in una libreria ma mantenere i tuoi file .SVC nel progetto web. È necessario modificare i file .SVC in modo che puntino alle classi adeguatamente qualificate.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.