. Prima dell'introduzione di WCF , servizi web sviluppati in netto doveva essere ospitato all'interno di Internet Information Server ( IIS ) . Nel . Net 3.0 , le opzioni di hosting per i servizi web . Netto è aumentato notevolmente . WCF include un nome ServiceHost classe che consente ai servizi di essere ospitati all'interno di un'applicazione facilmente . ServiceHost astrae molti la complessità tecnologica di distanza in modo gli sviluppatori possono concentrarsi sulla logica di servizio al posto delle tubature coinvolti in servizi di hosting . Hosting di un servizio al di fuori di IIS richiede l' WCF runtime e una gestita . NET per agire come host . E ' responsabilità dello sviluppatore di scrivere il codice che avvia e arresta l'host . Istruzioni
1
Selezionare "Nuovo" quindi "Progetto " nel menu File . Viene visualizzata la finestra di dialogo Nuovo progetto.
2
Selezionare Visual C # quindi Windows dall'elenco modello di progetto nella finestra di dialogo Nuovo progetto.
3
Selezionare Applicazione console dalla lista dei tipi di progetto Windows. Specificare un nome per il progetto nella casella Nome . Il nome del progetto dovrebbe essere qualcosa legato a sé che ospita un servizio web , se possibile.
4
Digitare una località nella casella di posizione nella finestra di dialogo Nuovo progetto. In alternativa , fare clic su "Sfoglia" per individuare la posizione in cui verrà memorizzato il progetto . Fare clic su " OK ". Visual Studio crea una nuova applicazione console .
5
destro del mouse su SelfHost in Esplora soluzioni . Poi , selezionare Aggiungi riferimento . Individuare System.ServiceModel nella scheda . NET e fare clic su "OK". Verrà aggiunto un riferimento all'assembly System.ServiceModel che è necessario per sviluppare o ospitare servizi WCF .
6
Fare doppio clic sul file di classe che è stato aggiunto quando il progetto è stato creato . Nella maggior parte dei casi sarà nominato Program.cs . Verrà visualizzato il codice per la classe .
7
pulsante destro del mouse sul nome del progetto e selezionare " Aggiungi nuova classe. " Assegnare un nome alla classe " HelloWorld " e inserire il seguente codice :
utilizzando System.ServiceModel ;
utilizzando System.ServiceModel.Description ;
[ ServiceContract ]
< p > public interface IHelloWorld
{
[ OperationContract ]
SayHello stringa ( string name) ; }
public class HelloWorld : IHelloWorld
{
pubblico SayHello stringa ( string name ) per
{
string.Format ritorno ( " Ciao , {0}" , nome) ;
}
}
Questo codice è l'implementazione di un campione di servizi web " HelloWorld ", che dispone di una operazione , " SayHello . "
8 < p > doppio clic sulla classe che è stata aggiunta automaticamente quando il progetto è stato creato . Nella maggior parte dei casi , la classe sarà nominato Program.cs
9
Inserisci il seguente codice nella parte superiore della classe :
utilizzando System.ServiceModel ;
< p . > utilizzando System.ServiceModel.Description ;
10
Inserisci il seguente codice nel metodo Main della classe :
//definisce l' indirizzo di base per il servizio sulla macchina locale
Uri baseAddress = new Uri ( " http://localhost:8080/hello " ) ;
//Crea il Servizio Host
usando ( ServiceHost host = new ServiceHost . ( typeof ( HelloWorld ) , baseAddress ) ) per
{
//Abilita la pubblicazione dei metadati
ServiceMetadataBehavior smb = new ServiceMetadataBehavior ( ) .
smb . httpGetEnabled = true ;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15 ;
host.Description.Behaviors.Add ( smb ) ;
//Aprire il ServiceHost per iniziare ascolto per i messaggi
host.Open ( ) .
Console.WriteLine (" Il servizio è attivo e può ricevere richiesta {0}" , baseAddress ) ;
Console . WriteLine ( "Premere Invio per arrestare il servizio . ");
Console.ReadLine ();
//Chiudere il ServiceHost
host.Close . (); }
Questo codice avvia il servizio di accoglienza e crea un'istanza del servizio . Il servizio può essere chiamato da un cliente fino a quando l'applicazione console viene chiusa .