Voorafgaand aan de introductie van WCF , webservices ontwikkeld in . Net moest worden gehost in Internet Information Server ( IIS ) . In . Net 3.0 , de hosting opties voor . NET Web services aanzienlijk toegenomen . WCF bevat een klasse met de naam ServiceHost waarmee diensten worden gehost binnen een applicatie gemakkelijk . ServiceHost abstraheert veel de technologische complexiteit weg zodat ontwikkelaars zich kunnen richten op de dienst logica in plaats van het sanitair betrokken bij hosting-diensten . Hosting een dienst buiten IIS vereist de WCF runtime en een beheerd . NET applicatie op te treden als de gastheer . Het is de verantwoordelijkheid van de ontwikkelaar op de code die begint en stopt de gastheer schrijven . Instructies 1 Selecteer " Nieuw " en vervolgens " Project " in het menu Bestand . Het dialoogvenster Nieuwe Project wordt weergegeven . Kopen van 2 Selecteer Visual C # en Windows in de project lijst met sjablonen op het dialoogvenster Nieuw project . Select Console Application 3 uit de lijst met Windows soorten projecten . Geef een naam voor het project in het vak Naam . De naam van het project moet iets met betrekking tot zelf hosten van een web service als mogelijk zijn . 4 Typ een locatie in de doos gelegen aan het dialoogvenster Nieuw Project . Of klik op "Browse" om te navigeren naar de locatie waar het project zal worden opgeslagen . Klik op " OK . " Visual Studio zal een nieuwe console applicatie te maken . Klik met de rechtermuisknop SelfHost 5 in Solution Explorer . Selecteer vervolgens Add Reference . Zoek System.ServiceModel in het tabblad . NET en klik op "OK . " Dit zal een verwijzing toe te voegen aan de System.ServiceModel assembly die nodig is om WCF diensten te ontwikkelen of hosten . 6 Dubbelklik op het klasse -bestand dat is toegevoegd toen het project werd gecreëerd . In de meeste gevallen zal het worden genoemd Program.cs . De code voor de klas zal worden weergegeven . 7 Klik met de rechtermuisknop op de naam van het project en selecteer " Add New Class . " Noem de klasse " HelloWorld " en voer de volgende code : gebruik System.ServiceModel ; gebruik System.ServiceModel.Description ; [ ServiceContract ] openbare interface IHelloWorld { [ OperationContract ] touwtje SayHello ( string naam ) ; } public class HelloWorld : IHelloWorld { public string SayHello ( string naam ) op { return String.Format ( "Hello , { 0 } " , naam ) ; } } Deze code is de implementatie van een monster " HelloWorld " webdienst die een operatie , heeft " SayHello . " 8 Dubbelklik op de klasse die automatisch werd toegevoegd wanneer het project is gemaakt . In de meeste gevallen zal de klasse worden benoemd Program.cs 9 Voer de volgende code aan de top van de klas : gebruik System.ServiceModel ; gebruik System.ServiceModel.Description ; 10 Voer de volgende code in de Main methode van de klasse: //definieert het basisadres voor de dienst op de lokale machine < br > Uri baseAddress = new Uri ( " http://localhost:8080/hello " ) ; //Maak de Dienst Host gebruik ( ServiceHost host = new ServiceHost . ( typeof ( HelloWorld ) , baseAddress ) ) op Twitter { //Enable publiceren van metadata ServiceMetadataBehavior smb = new ServiceMetadataBehavior ( ) ; . smb . HttpGetEnabled = true ; smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15 ; host.Description.Behaviors.Add ( smb ) ; //Open de ServiceHost te beginnen luisteren naar berichten host.Open ( ) ; . Console.WriteLine ( " De service wordt uitgevoerd en kan ontvangen verzoek { 0 } " , baseAddress ) ; Console . WriteLine ( " Druk op Enter om de service te stoppen . " ) ; Console.ReadLine ( ) op ; //Sluit de ServiceHost host.Close . ( ) ; } Deze code start de service host en maakt een instantie van de dienst . De service kan worden aangeroepen vanaf een client totdat de console toepassing wordt gesloten .
|