. Före införandet av WCF , webbtjänster utvecklats i Net tvungen att vara värd i Internet Information Server ( IIS ) . I . Net 3.0 , ökade hosting alternativ för . NET Web Services kraftigt . WCF innehåller en klass som heter ServiceHost som tillåter tjänster att vara värd i ett program lätt . ServiceHost abstracts många tekniska komplexitet bort så utvecklarna kan fokusera på tjänsten logik i stället för VVS inblandade i hostingtjänster . Hosting en tjänst utanför IIS kräver WCF runtime och en hanterad . NET-program att fungera som värd . Det är utvecklarens ansvar att skriva koden som startar och stoppar värd . Instruktioner
1
Välj " Nytt " och sedan " Projekt " i Arkiv-menyn . Dialogrutan Nytt projekt visas . # Sedan köpa 2
Välj Visual C Windows in från projektmallen listan på dialogrutan Nytt projekt .
3
Välj Console Application från listan över Windows projekttyper . Ange ett namn för projektet i rutan Namn . Projektets namn bör vara något med anknytning till egenvärdbaserade en webbtjänst om möjligt .
4
Skriv en plats i rutan Plats på dialogrutan Nytt projekt . Alternativt , klicka på " Browse " för att navigera till den plats där projektet kommer att lagras . Klicka på " OK . " Visual Studio kommer att skapa en ny konsol ansökan .
5
Högerklicka SelfHost i Solution Explorer . Sedan väljer du Lägg Reference . Leta System.ServiceModel i . NET fliken och klicka på " OK . " Detta kommer att lägga till en hänvisning till den System.ServiceModel församling som krävs för att utveckla eller värd WCF-tjänster .
6
Dubbelklicka klassen filen som lades när projektet skapades . I de flesta fall kommer att namnges Program.cs . Koden för klassen kommer att visas .
7
Högerklicka på projektnamnet och välj " Lägg till en ny klass . " Namnge klassen " HelloWorld " och skriv in följande kod :
hjälp System.ServiceModel ,
hjälp System.ServiceModel.Description ,
[ ServiceContract ]
offentligt gränssnitt IHelloWorld
{
[ OperationContract ]
sträng SayHello ( string name ) ;
}
public class HelloWorld : IHelloWorld
{
public String SayHello ( string name ) katalog
{
retur string.Format ( "Hello , { 0 } " , namn ) ;
}
}
Denna kod är genomförandet av ett prov " HelloWorld " webbtjänst som har en operation , " SayHello . "
8
Dubbelklicka på den klass som automatiskt sattes när projektet skapades . I de flesta fall , kommer klassen att namnges Program.cs
9
Skriv följande kod i toppen av klassen :
hjälp System.ServiceModel ,
< p . > hjälp System.ServiceModel.Description ,
10
Skriv följande kod i den huvudsakliga metoden för klassen :
//definierar basen adress för tjänsten på den lokala maskinen
Uri baseAddress = ny Uri ( " http://localhost:8080/hello " ) ;
//Skapa service Host
hjälp ( ServiceHost host = ny ServiceHost . ( typeof ( HelloWorld ) , baseAddress ) ) katalog
{
//Aktivera metadata publicering
ServiceMetadataBehavior smb = ny ServiceMetadataBehavior ( ) , .
smb . HttpGetEnabled = true;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15 ;
host.Description.Behaviors.Add ( SMB ) ,
//Öppna ServiceHost att starta lyssnar efter meddelanden
host.Open ( ) , .
Console.WriteLine ( " tjänsten är igång och kan ta emot begäran { 0 } " , baseAddress ) ;
Console . WriteLine ( " Tryck att stoppa tjänsten . " ) ;
Console.ReadLine ( ) ;
//Stäng ServiceHost
host.Close . ( ) ;
}
här koden startar tjänsten värd och skapar en instans av tjänsten . Tjänsten kan anropas från en klient till konsolen programmet avslutats.