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.