WebServiceHost Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Classe dérivée ServiceHost qui complète le modèle de programmation REST Windows Communication Foundation (WCF).
public ref class WebServiceHost : System::ServiceModel::ServiceHost
public class WebServiceHost : System.ServiceModel.ServiceHost
type WebServiceHost = class
inherit ServiceHost
Public Class WebServiceHost
Inherits ServiceHost
- Héritage
- Dérivé
Exemples
L’exemple suivant montre comment utiliser la WebServiceHost classe pour héberger un service qui utilise le modèle de programmation REST WCF.
[ServiceContract]
public interface ICalculator
{
[OperationContract]
[WebInvoke(UriTemplate = "add?x={x}&y={y}")]
long Add(long x, long y);
[OperationContract]
[WebInvoke(UriTemplate = "sub?x={x}&y={y}")]
long Subtract(long x, long y);
[OperationContract]
[WebInvoke(UriTemplate = "mult?x={x}&y={y}")]
long Multiply(long x, long y);
[OperationContract]
[WebInvoke(UriTemplate = "div?x={x}&y={y}")]
long Divide(long x, long y);
[OperationContract]
[WebGet(UriTemplate = "hello?name={name}")]
string SayHello(string name);
}
public class CalcService : ICalculator
{
public long Add(long x, long y)
{
return x + y;
}
public long Subtract(long x, long y)
{
return x - y;
}
public long Multiply(long x, long y)
{
return x * y;
}
public long Divide(long x, long y)
{
return x / y;
}
public string SayHello(string name)
{
return "Hello " + name;
}
}
class Program
{
static void Main(string[] args)
{
Uri baseAddress = new Uri("http://localhost:8000/");
WebServiceHost svcHost = new WebServiceHost(typeof(CalcService), baseAddress);
try
{
svcHost.Open();
Console.WriteLine("Service is running");
Console.WriteLine("Press enter to quit...");
Console.ReadLine();
svcHost.Close();
}
catch (CommunicationException cex)
{
Console.WriteLine("An exception occurred: {0}", cex.Message);
svcHost.Abort();
}
}
}
<ServiceContract()> _
Public Interface ICalculator
<OperationContract()> _
<WebInvoke(UriTemplate:="add?x={x}&y={y}")> _
Function Add(ByVal x As Long, ByVal y As Long) As Long
<OperationContract()> _
<WebInvoke(UriTemplate:="sub?x={x}&y={y}")> _
Function Subtract(ByVal x As Long, ByVal y As Long) As Long
<OperationContract()> _
<WebInvoke(UriTemplate:="mult?x={x}&y={y}")> _
Function Multiply(ByVal x As Long, ByVal y As Long) As Long
<OperationContract()> _
<WebInvoke(UriTemplate:="div?x={x}&y={y}")> _
Function Divide(ByVal x As Long, ByVal y As Long) As Long
<OperationContract()> _
<WebGet(UriTemplate:="hello?name={name}")> _
Function SayHello(ByVal name As String) As String
End Interface
Public Class CalcService
Implements ICalculator
Public Function Add(ByVal x As Long, ByVal y As Long) As Long Implements ICalculator.Add
Return x + y
End Function
Public Function Subtract(ByVal x As Long, ByVal y As Long) As Long Implements ICalculator.Subtract
Return x - y
End Function
Public Function Multiply(ByVal x As Long, ByVal y As Long) As Long Implements ICalculator.Multiply
Return x * y
End Function
Public Function Divide(ByVal x As Long, ByVal y As Long) As Long Implements ICalculator.Divide
Return x / y
End Function
Public Function SayHello(ByVal name As String) As String Implements ICalculator.SayHello
Return "Hello " + name
End Function
End Class
Remarques
Si WebServiceHost ne trouve aucun point de terminaison dans la description du service, il crée automatiquement un point de terminaison par défaut à l'adresse de base du service pour les adresses de base HTTP et HTTPS. Il ne crée pas automatiquement un point de terminaison si l'utilisateur en a configuré un, de façon explicite, au niveau de l'adresse de base. WebServiceHostconfigure automatiquement la liaison du point de terminaison pour qu’elle fonctionne avec les paramètres de sécurité Internet Information Services (IIS) associés lorsqu’il est utilisé dans un répertoire virtuel sécurisé.
Lors de la création d'un point de terminaison HTTP par défaut, WebServiceHost désactive également la page d'aide HTTP et la fonctionnalité WSDL (Web Services Description Language) GET afin que le point de terminaison des métadonnées n'interfère pas avec le point de terminaison HTTP par défaut.
De plus, la classe WebServiceHost ajoute WebHttpBehavior à tous les points de terminaison qui n'ont pas déjà le comportement et qui possèdent un WebMessageEncodingElement. Si toutes les opérations sur le service ont des corps de requête HTTP vides ou gèrent ceux-ci comme un flux de données, WebServiceHost configure alors automatiquement le mappeur de type de contenu approprié pour la liaison.
Constructeurs
WebServiceHost() |
Initialise une nouvelle instance de la classe WebServiceHost. |
WebServiceHost(Object, Uri[]) |
Initialise une nouvelle instance de la classe WebServiceHost avec l'instance de serveur singleton et l'adresse de base spécifiés. |
WebServiceHost(Type, Uri[]) |
Initialise une nouvelle instance de la classe WebServiceHost avec le type de service et l'adresse de base spécifiés. |
Propriétés
Authentication |
Obtient le comportement d'authentification du service. (Hérité de ServiceHostBase) |
Authorization |
Obtient le comportement d'autorisation pour le service hébergé. (Hérité de ServiceHostBase) |
BaseAddresses |
Obtient les adresses de base utilisées par le service hébergé. (Hérité de ServiceHostBase) |
ChannelDispatchers |
Obtient la collection de répartiteurs de canal utilisés par l’hôte du service. (Hérité de ServiceHostBase) |
CloseTimeout |
Obtient ou définit l'intervalle de temps pendant lequel la fermeture de l'hôte du service est autorisée. (Hérité de ServiceHostBase) |
Credentials |
Obtient les informations d'identification du service hébergé. (Hérité de ServiceHostBase) |
DefaultCloseTimeout |
Obtient l'intervalle de temps par défaut pendant lequel la fermeture de l'hôte du service est autorisée. (Hérité de ServiceHostBase) |
DefaultOpenTimeout |
Obtient l'intervalle de temps par défaut pendant lequel l'ouverture de l'hôte du service est autorisée. (Hérité de ServiceHostBase) |
Description |
Obtient la description du service hébergé. (Hérité de ServiceHostBase) |
Extensions |
Obtient les extensions pour l'hôte du service actuellement spécifié. (Hérité de ServiceHostBase) |
ImplementedContracts |
Récupère les contrats implémentés par le service hébergé. (Hérité de ServiceHostBase) |
IsDisposed |
Obtient une valeur qui indique si l'objet de communication a été supprimé. (Hérité de CommunicationObject) |
ManualFlowControlLimit |
Obtient ou définit la limite de contrôle de flux pour les messages reçus par le service hébergé. (Hérité de ServiceHostBase) |
OpenTimeout |
Obtient ou définit l'intervalle de temps pendant lequel l'ouverture de l'hôte du service est autorisée. (Hérité de ServiceHostBase) |
SingletonInstance |
Obtient l'instance singleton du service hébergé. (Hérité de ServiceHost) |
State |
Obtient une valeur qui indique l'état actuel de l'objet de communication. (Hérité de CommunicationObject) |
ThisLock |
Obtient le verrou mutuellement exclusif qui protège l'instance de classe pendant une transition d'état. (Hérité de CommunicationObject) |
Méthodes
Abort() |
Provoque la transition immédiate d'un objet de communication de son état actuel à l'état de fermeture. (Hérité de CommunicationObject) |
AddBaseAddress(Uri) |
Ajoute une adresse de base à l'hôte du service. (Hérité de ServiceHostBase) |
AddDefaultEndpoints() |
Ajoute des points de terminaison de service pour toutes les adresses de base dans chaque contrat trouvé dans l’hôte de service avec la liaison par défaut. (Hérité de ServiceHostBase) |
AddServiceEndpoint(ServiceEndpoint) |
Ajoute le point de terminaison de service spécifié au service hébergé. (Hérité de ServiceHostBase) |
AddServiceEndpoint(String, Binding, String) |
Ajoute un point de terminaison de service au service hébergé avec un contrat, une liaison et une adresse de point de terminaison spécifiés. (Hérité de ServiceHostBase) |
AddServiceEndpoint(String, Binding, String, Uri) |
Ajoute un point de terminaison de service au service hébergé avec un contrat, une liaison, une adresse de point de terminaison et un URI spécifiés contenant l'adresse à partir de laquelle il écoute. (Hérité de ServiceHostBase) |
AddServiceEndpoint(String, Binding, Uri) |
Ajoute un point de terminaison de service au service hébergé avec un contrat, une liaison et un URI contenant l’adresse de point de terminaison spécifiés. (Hérité de ServiceHostBase) |
AddServiceEndpoint(String, Binding, Uri, Uri) |
Ajoute un point de terminaison de service au service hébergé avec le contrat, la liaison et les URI spécifiés contenant les adresses d’écoute et de point de terminaison. (Hérité de ServiceHostBase) |
AddServiceEndpoint(Type, Binding, String) |
Ajoute un point de terminaison de service au service hébergé avec un contrat, une liaison et une adresse de point de terminaison spécifiés. (Hérité de ServiceHost) |
AddServiceEndpoint(Type, Binding, String, Uri) |
Ajoute un point de terminaison de service au service hébergé avec un contrat spécifié, une liaison, une adresse de point de terminaison et un URI sur lequel le service écoute. (Hérité de ServiceHost) |
AddServiceEndpoint(Type, Binding, Uri) |
Ajoute un point de terminaison de service au service hébergé avec un contrat, une liaison et un URI qui contient l’adresse de point de terminaison spécifiés. (Hérité de ServiceHost) |
AddServiceEndpoint(Type, Binding, Uri, Uri) |
Ajoute un point de terminaison de service au service hébergé avec un contrat spécifié, une liaison, un URI qui contient l’adresse de point de terminaison et un URI sur lequel le service écoute. (Hérité de ServiceHost) |
ApplyConfiguration() |
Charge la description du service à partir du fichier de configuration et les applique au runtime en cours de construction. (Hérité de ServiceHost) |
BeginClose(AsyncCallback, Object) |
Commence une opération asynchrone pour fermer un objet de communication. (Hérité de CommunicationObject) |
BeginClose(TimeSpan, AsyncCallback, Object) |
Commence une opération asynchrone pour fermer un objet de communication avec un délai d'attente spécifié. (Hérité de CommunicationObject) |
BeginOpen(AsyncCallback, Object) |
Commence une opération asynchrone pour ouvrir un objet de communication. (Hérité de CommunicationObject) |
BeginOpen(TimeSpan, AsyncCallback, Object) |
Commence une opération asynchrone pour ouvrir un objet de communication dans un intervalle de temps spécifié. (Hérité de CommunicationObject) |
Close() |
Provoque la transition d'un objet de communication de son état actuel à l'état fermé. (Hérité de CommunicationObject) |
Close(TimeSpan) |
Provoque la transition d'un objet de communication de son état actuel à l'état fermé dans un intervalle de temps spécifié. (Hérité de CommunicationObject) |
CreateDescription(IDictionary<String,ContractDescription>) |
Crée une description du service hébergé. (Hérité de ServiceHost) |
EndClose(IAsyncResult) |
Termine une opération asynchrone pour fermer un objet de communication. (Hérité de CommunicationObject) |
EndOpen(IAsyncResult) |
Termine une opération asynchrone pour ouvrir un objet de communication. (Hérité de CommunicationObject) |
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
Fault() |
Provoque la transition d'un objet de communication de son état actuel à l'état d'erreur. (Hérité de CommunicationObject) |
GetCommunicationObjectType() |
Obtient le type d'objet de communication. (Hérité de CommunicationObject) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
IncrementManualFlowControlLimit(Int32) |
Augmente la limite du flux de messages vers le service hébergé d'un incrément spécifié. (Hérité de ServiceHostBase) |
InitializeDescription(Object, UriSchemeKeyedCollection) |
Initialise une description du service hébergé basée sur son instance et ses adresses de base spécifiées. (Hérité de ServiceHost) |
InitializeDescription(Type, UriSchemeKeyedCollection) |
Initialise une description du service hébergé basée sur son type et ses adresses de base spécifiées. (Hérité de ServiceHost) |
InitializeDescription(UriSchemeKeyedCollection) |
Crée et initialise l'hôte du service à l'aide des descriptions du contrat et du service. (Hérité de ServiceHostBase) |
InitializeRuntime() |
Initialise le runtime pour l'hôte du service. (Hérité de ServiceHostBase) |
LoadConfigurationSection(ServiceElement) |
Charge l'élément de service à partir du fichier de configuration du service hébergé. (Hérité de ServiceHostBase) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
OnAbort() |
Abandonne le service. (Hérité de ServiceHostBase) |
OnBeginClose(TimeSpan, AsyncCallback, Object) |
Lance une opération asynchrone appelée à la fermeture de l'hôte du service. (Hérité de ServiceHostBase) |
OnBeginOpen(TimeSpan, AsyncCallback, Object) |
Lance une opération asynchrone appelée à l'ouverture de l'hôte du service. (Hérité de ServiceHostBase) |
OnClose(TimeSpan) |
Ferme le service hébergé, y compris ses répartiteurs de canal et les contextes d'instance et les écouteurs associés. (Hérité de ServiceHostBase) |
OnClosed() |
Supprime les services supprimables hébergés lorsque l'hôte de service est fermé. (Hérité de ServiceHost) |
OnClosing() |
Appelé pendant la transition d'un objet de communication à l'état de fermeture. (Hérité de CommunicationObject) |
OnEndClose(IAsyncResult) |
Exécute une opération asynchrone appelée à la fermeture de l'hôte du service. (Hérité de ServiceHostBase) |
OnEndOpen(IAsyncResult) |
Exécute une opération asynchrone appelée à l'ouverture de l'hôte du service. (Hérité de ServiceHostBase) |
OnFaulted() |
Insère le traitement sur un objet de communication après sa transition vers l’état d’erreur en raison de l’appel d’une opération d’erreur synchrone. (Hérité de CommunicationObject) |
OnOpen(TimeSpan) |
Ouvre les répartiteurs de canal. (Hérité de ServiceHostBase) |
OnOpened() |
Obtient les informations d'identification et le comportement d'autorisation et d'authentification du service pour le service hébergé. (Hérité de ServiceHostBase) |
OnOpening() |
Appelé lors de l'ouverture de l'instance de WebServiceHost. |
Open() |
Provoque la transition d'un objet de communication de l'état créé à l'état ouvert. (Hérité de CommunicationObject) |
Open(TimeSpan) |
Provoque la transition d'un objet de communication de l'état créé à l'état ouvert dans un intervalle de temps spécifié. (Hérité de CommunicationObject) |
ReleasePerformanceCounters() |
Libère les compteurs de performance du service et du répartiteur de canal pour le service hébergé. (Hérité de ServiceHostBase) |
SetEndpointAddress(ServiceEndpoint, String) |
Définit l'adresse du point de terminaison spécifiée sur l'adresse spécifiée. (Hérité de ServiceHostBase) |
ThrowIfDisposed() |
Renvoie une exception si l'objet de communication est supprimé. (Hérité de CommunicationObject) |
ThrowIfDisposedOrImmutable() |
Renvoie une exception si la propriété State de l'objet de communication n'a pas pour valeur l'état Created. (Hérité de CommunicationObject) |
ThrowIfDisposedOrNotOpen() |
Renvoie une exception si l'objet de communication n'est pas dans l'état Opened. (Hérité de CommunicationObject) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
Événements
Closed |
Se produit lorsqu'un objet de communication passe à l'état fermé. (Hérité de CommunicationObject) |
Closing |
Se produit lorsqu'un objet de communication passe à l'état de fermeture. (Hérité de CommunicationObject) |
Faulted |
Se produit lorsqu'un objet de communication passe à l'état d'erreur. (Hérité de CommunicationObject) |
Opened |
Se produit lorsqu'un objet de communication passe à l'état ouvert. (Hérité de CommunicationObject) |
Opening |
Se produit lorsqu'un objet de communication passe à l'état d'ouverture. (Hérité de CommunicationObject) |
UnknownMessageReceived |
Se produit lorsqu'un message inconnu est reçu. (Hérité de ServiceHostBase) |
Implémentations d’interfaces explicites
IDisposable.Dispose() |
Ferme l'hôte du service. (Hérité de ServiceHostBase) |