@ServiceHost
Associe la fabrique utilisée pour générer l'hôte de service au service à héberger ainsi qu'à d'autres aspects de programmation requis pour compiler le code d'hébergement fourni dans le fichier .svc ou pour y accéder.
Syntaxe
<% @ServiceHost
Service = "Service, ServiceNamespace"
Factory = "Factory, FactoryNamespace"
Debug = "Debug"
Language = "Language"
CodeBehind = "CodeBehind"
%>
Attributs
Service
Nom de type CLR du service hébergé. Il doit s’agir d’un nom qualifié correspondant à un type qui implémente un ou plusieurs contrats du service.
Fabrique
Nom de type CLR correspondant à la fabrique de l'hôte de service utilisée pour instancier l'hôte de service. Cet attribut est facultatif. S'il n'est pas spécifié, le ServiceHostFactory par défaut est utilisé et renvoie une instance de ServiceHost.
Débogage
Indique si le service Windows Communication Foundation (WCF) doit être compilé avec des symboles de débogage. true
si le service WCF doit être compilé avec les symboles de débogage ; sinon, false
.
Langage
Spécifie le langage utilisé lors de la compilation de l'intégralité du code incorporé dans le fichier (.svc). Ces valeurs peuvent représenter tout langage pris en charge par .NET, notamment C#
, VB
et JS
, qui font respectivement référence à C#, Visual Basic et JScript .NET. Cet attribut est facultatif.
CodeBehind
Spécifie le fichier source qui implémente le service web XML, lorsque la classe implémentant le service web XML ne réside pas dans le même fichier et n’a pas été compilée dans un assembly et placée dans le répertoire \Bin.
Notes
La ServiceHost utilisée pour héberger le service est un point d’extensibilité dans le modèle de programmation Windows Communication Foundation (WCF). Un modèle de fabrique est utilisé pour instancier le ServiceHost car il peut s'agir d'un type polymorphe ne devant pas être instancié directement par l'environnement d'hébergement.
L'implémentation par défaut utilise ServiceHostFactory pour créer une instance de ServiceHost. Vous pouvez toutefois fournir votre propre fabrique (une qui renvoie votre hôte dérivé) en spécifiant le nom de type CLR correspondant à l’implémentation de votre fabrique dans la directive @ServiceHost
.
Pour utiliser votre propre fabrique hôte de service personnalisée au lieu de la fabrique par défaut, il vous suffit d’indiquer le nom de type dans la directive @ServiceHost
de la manière suivante.
<% @ServiceHost Factory="DerivedFactory" Service="MyService" %>
Surchargez les implémentations de fabrique le moins possible. Si vous disposez d'une importante logique personnalisée, votre code est plus facilement réutilisable si vous intégrez cette logique à votre hôte et non à la fabrique.
Par exemple, pour activer un point de terminaison compatible AJAX pour MyService
, spécifiez le WebScriptServiceHostFactory comme valeur de l’attribut Factory
dans la directive @ServiceHost
, au lieu de ServiceHostFactory par défaut (voir l’exemple suivant) :
<% @ServiceHost
Service="MyService"
Language="C#"
Debug="true"
Factory="WebScriptServiceHostFactory"
%>