Delen via


@ServiceHost

Koppelt de factory die wordt gebruikt om de servicehost te produceren aan de service die moet worden gehost en andere programmeeraspecten die nodig zijn om de hostingcode in het .svc-bestand te openen of te compileren.

Syntax

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

Kenmerken

Service

De naam van het CLR-type van de service die wordt gehost. Dit moet een gekwalificeerde naam zijn van een type waarmee een of meer servicecontracten worden geïmplementeerd.

Factory

De CLR-typenaam van de servicehostfactory die wordt gebruikt om de servicehost te instantiëren. Dit kenmerk is optioneel. Als dit niet is opgegeven, wordt de standaardwaarde ServiceHostFactory gebruikt, die een exemplaar van ServiceHostretourneert.

Fouten opsporen

Geeft aan of de WCF-service (Windows Communication Foundation) moet worden gecompileerd met symbolen voor foutopsporing. true als de WCF-service moet worden gecompileerd met symbolen voor foutopsporing; anders, false.

Taal

Hiermee geeft u de taal op die wordt gebruikt bij het compileren van alle inlinecode in het bestand (.svc). De waarden kunnen elke vertegenwoordigen. Door NET ondersteunde taal, waaronder C#, VBen JS, die verwijzen naar respectievelijk C#, Visual Basic en JScript .NET. Dit kenmerk is optioneel.

CodeBehind

Hiermee geeft u het bronbestand op dat de XML-webservice implementeert, wanneer de klasse waarmee de XML-webservice wordt geïmplementeerd, zich niet in hetzelfde bestand bevindt en niet is gecompileerd in een assembly en in de map \Bin is geplaatst.

Opmerkingen

De ServiceHost die wordt gebruikt om de service te hosten, is een punt van uitbreidbaarheid binnen het WCF-programmeermodel (Windows Communication Foundation). Een factory-patroon wordt gebruikt om de ServiceHost te instantiëren, omdat het mogelijk een polymorf type is dat de hostingomgeving niet rechtstreeks mag instantiëren.

De standaard implementatie gebruikt ServiceHostFactory om een exemplaar van ServiceHostte maken. Maar u kunt uw eigen factory opgeven (een fabriek die uw afgeleide host retourneert) door de clr-typenaam van uw factory-implementatie op te geven in de @ServiceHost -instructie.

Als u uw eigen aangepaste servicehostfactory wilt gebruiken in plaats van de standaardfactory, geeft u de typenaam als volgt op in de @ServiceHost instructie.

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

Houd de implementaties in de fabriek zo licht mogelijk. Als u veel aangepaste logica hebt, is uw code herbruikbaar als u die logica in uw host plaatst in plaats van in de fabriek.

Als u bijvoorbeeld een AJAX-eindpunt wilt inschakelen voor MyService, geeft u de WebScriptServiceHostFactory op voor de waarde van het Factory kenmerk in plaats van de standaardinstelling ServiceHostFactoryin de @ServiceHost -instructie, zoals wordt weergegeven in het volgende voorbeeld:

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

Zie ook