@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. true
om 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#
, VB
och 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 MyService
anger 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"
%>