Dela via


@ServiceHost

Associerar den fabrik som användes för att skapa tjänstvärden med tjänsten som ska vara värd för och andra programmeringsaspekter som krävs för att komma åt eller kompilera värdkoden som finns i .svc-filen.

Syntax

<% @ServiceHost
Service = "Service, ServiceNamespace"
Factory = "Factory, FactoryNamespace"
Debug = "Debug"
Language = "Language"
CodeBehind = "CodeBehind"
%>

Attribut

Tjänst

CLR-typnamnet för den värdbaserade tjänsten. Detta bör vara ett kvalificerat namn på en typ som implementerar ett eller flera av tjänstkontrakten.

Factory

CLR-typnamnet för tjänstvärdfabriken som används för att instansiera tjänstvärden. Det här attributet är valfritt. Om det är ospecificerat används standardvärdet ServiceHostFactory , vilket returnerar en instans av ServiceHost.

Felsöka

Anger om WCF-tjänsten (Windows Communication Foundation) ska kompileras med felsökningssymboler. trueom WCF-tjänsten ska kompileras med felsökningssymboler; annars . false

Språk

Anger det språk som används vid kompilering av all infogad kod i filen (.svc). Värdena kan representera valfri . Språk som stöds av NET, inklusive C#, VBoch JS, som refererar till C#, Visual Basic respektive JScript .NET. Det här attributet är valfritt.

Codebehind

Anger källfilen som implementerar XML-webbtjänsten när klassen som implementerar XML-webbtjänsten inte finns i samma fil och inte har kompilerats till en sammansättning och placerats i katalogen \Bin .

Kommentarer

Den ServiceHost som används som värd för tjänsten är en utökningspunkt i programmeringsmodellen Windows Communication Foundation (WCF). Ett fabriksmönster används för att instansiera ServiceHost eftersom det potentiellt är en polymorf typ som värdmiljön inte ska instansiera direkt.

Standardimplementeringen använder ServiceHostFactory för att skapa en instans av ServiceHost. Men du kan ange en egen fabrik (en som returnerar din härledda värd) genom att ange CLR-typnamnet för din fabriksimplementering i @ServiceHost -direktivet.

Om du vill använda en egen värdfabrik för anpassade tjänster i stället för standardfabriken anger du bara typnamnet i @ServiceHost direktivet på följande sätt.

<% @ServiceHost Factory="DerivedFactory" Service="MyService" %>

Håll fabriksimplementeringarna så lätta som möjligt. Om du har mycket anpassad logik kan koden återanvändas mer om du placerar logiken i värden i stället för inuti fabriken.

Om du till exempel vill aktivera en AJAX-aktiverad slutpunkt för MyServiceanger du WebScriptServiceHostFactory för värdet Factory för attributet, i stället för standardvärdet ServiceHostFactory, i @ServiceHost direktivet enligt följande exempel:

<% @ServiceHost
Service="MyService"
Language="C#"
Debug="true"
Factory="WebScriptServiceHostFactory"
%>

Se även