Partager via


WebServiceHost Classe

Définition

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)

S’applique à