Slik vert en ASP Net Web Service Utenfor IIS
Før innføringen av WCF, web-tjenester utviklet i .Net måtte ligge i Internet Information Server (IIS). I .Net 3.0, hosting alternativer for Net webtjenester økt betydelig. WCF inneholder en klasse som heter ServiceHost som gjør tjenester for å ligge i et program enkelt. ServiceHost abstraherer mange den teknologisk kompleksitet bort slik at utviklere kan fokusere på tjenestelogikken i stedet for rørleggerarbeid involvert i hosting-tjenester. Hosting en tjeneste utenfor IIS krever WCF runtime og en administrert NET applikasjon for å fungere som vert. Det er utbyggers ansvar å skrive koden som starter og stopper verten.
Bruksanvisning
1 Velg "New" og deretter "Project" i Fil-menyen. Dialogboksen Nytt prosjekt vises.
2 Velg Visual C # og deretter Windows i fra prosjektmalen liste i dialogboksen Nytt prosjekt.
3 Velg Console Application fra listen over Windows prosjekttyper. Angi et navn for prosjektet i Navn-boksen. Prosjektnavnet bør være noe relatert til selv hosting en web-tjeneste hvis mulig.
4 Skriv inn et sted i posisjonsfeltet i dialogboksen Nytt prosjekt. Alternativt kan du klikke på "Browse" for å navigere til stedet der prosjektet vil bli lagret. Klikk på "OK". Visual Studio vil skape en ny konsoll applikasjon.
5 Høyreklikk SelfHost i Solution Explorer. Deretter velger Add Reference. Finn System.ServiceModel i kategorien .NET og klikk "OK." Dette vil legge til en referanse til System.ServiceModel forsamlingen som er nødvendig for å utvikle eller vert WCF tjenester.
6 Dobbeltklikk på klassen filen som ble lagt da prosjektet ble opprettet. I de fleste tilfeller vil det bli navngitt Program.cs. Koden for klassen vil bli vist.
7 Høyreklikk på prosjektnavnet og velg "Legg til ny klasse." Navn klassen "Helloworld" og skriv inn følgende kode:
bruker System.ServiceModel;
bruker System.ServiceModel.Description;
[Servicekontrakt]
felles grensesnitt IHelloWorld
{
[OperationContract]
string sayHello (string navn);
}
public class Helloworld: IHelloWorld
{
public string SayHello(string name)
{
tilbake string.Format ( "Hei, {0}", navn);
}
}
Denne koden er gjennomføringen av en sample "Helloworld" web-tjeneste som har en operasjon, "sayHello."
8 Dobbeltklikk på den klassen som ble automatisk lagt da prosjektet ble opprettet. I de fleste tilfeller vil klassen bli navngitt Program.cs.
9 Skriv inn følgende kode på toppen av klassen:
bruker System.ServiceModel;
bruker System.ServiceModel.Description;
10 Skriv inn følgende kode i den viktigste metoden for klassen:
// Definerer basisadresse for tjenesten på den lokale maskinen
Uri baseAddress = ny Uri ( "http: // localhost: 8080 / hallo");
// Lag Tjenesten Host.
bruker (ServiceHost host = ny ServiceHost (typeof (Helloworld), baseAddress))
{
// Enable metadata publishing.
ServiceMetadataBehavior smb = new ServiceMetadataBehavior ();
smb.HttpGetEnabled = true;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
host.Description.Behaviors.Add (smb);
// Åpne ServiceHost å begynne å lytte til meldinger.
host.Open ();
Console.WriteLine ( "Tjenesten er i gang, og kan motta forespørsel {0}", baseAddress);
Console.WriteLine ( "Press & lt; Enter> for å stoppe tjenesten.");
Console.ReadLine ();
// Lukk ServiceHost.
host.Close ();
}
Denne koden starter tjenesten vert og oppretter en forekomst av tjenesten. Tjenesten kan kalles fra en klient til konsollen programmet lukkes.
Hint
- WCF tjenester kan ligge i andre valutaer enn konsoll applikasjoner søknadstyper. Enhver søknad slik en Windows-tjeneste eller skjemaer program som støtter WCF kan brukes til selv vert en WCF service.