WebServiceHost Classe

Définition

Classe dérivée ServiceHost qui complète le modèle de programmation REST Windows Communication Foundation (WCF).A ServiceHost derived class that compliments the Windows Communication Foundation (WCF) REST programming model.

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 WCF Rest.The following example shows how to use the WebServiceHost class to host a service that makes use of the WCF REST programming model.

[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.If WebServiceHost finds no endpoints in the service description, it automatically creates a default endpoint at the service's base address for HTTP and HTTPS base addresses. 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.It does not create an endpoint automatically if the user has configured an endpoint explicitly at the base address. WebServiceHost configure automatiquement la liaison du point de terminaison afin qu'il puisse profiter des paramètres de sécurité IIS (Internet Information Services) en cas d'utilisation dans un répertoire virtuel sécurisé.WebServiceHost automatically configures the endpoint's binding to work with the associated Internet Information Services (IIS) security settings when used in a secure virtual directory.

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.When creating a default HTTP endpoint, the WebServiceHost also disables the HTTP Help page and the Web Services Description Language (WSDL) GET functionality so the metadata endpoint does not interfere with the default HTTP endpoint.

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.In addition, the WebServiceHost class adds the WebHttpBehavior to all endpoints that do not already have the behavior and that have a 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.If all the operations on the service have either empty HTTP request bodies or deal with the HTTP request body as a stream, then the WebServiceHost automatically configures the appropriate content type mapper for the binding.

Constructeurs

WebServiceHost()

Initialise une nouvelle instance de la classe WebServiceHost.Initializes a new instance of the WebServiceHost class.

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.Initializes a new instance of the WebServiceHost class with the specified singleton server instance and base address.

WebServiceHost(Type, Uri[])

Initialise une nouvelle instance de la classe WebServiceHost avec le type de service et l'adresse de base spécifiés.Initializes a new instance of the WebServiceHost class with the specified service type and base address.

Propriétés

Authentication

Obtient le comportement d'authentification du service.Gets the service authentication behavior.

(Hérité de ServiceHostBase)
Authorization

Obtient le comportement d'autorisation pour le service hébergé.Gets the authorization behavior for the service hosted.

(Hérité de ServiceHostBase)
BaseAddresses

Obtient les adresses de base utilisées par le service hébergé.Gets the base addresses used by the hosted service.

(Hérité de ServiceHostBase)
ChannelDispatchers

Obtient la collection de répartiteurs de canal utilisés par l’hôte du service.Gets the collection of channel dispatchers used by the service host.

(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.Gets or sets the interval of time allowed for the service host to close.

(Hérité de ServiceHostBase)
Credentials

Obtient les informations d'identification du service hébergé.Gets the credential for the service hosted.

(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.Gets the default interval of time allowed for the service host to close.

(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.Gets the default interval of time allowed for the service host to open.

(Hérité de ServiceHostBase)
Description

Obtient la description du service hébergé.Gets the description of the service hosted.

(Hérité de ServiceHostBase)
Extensions

Obtient les extensions pour l'hôte du service actuellement spécifié.Gets the extensions for the current specified service host.

(Hérité de ServiceHostBase)
ImplementedContracts

Récupère les contrats implémentés par le service hébergé.Retrieves the contracts implemented by the service hosted.

(Hérité de ServiceHostBase)
IsDisposed

Obtient une valeur qui indique si l'objet de communication a été supprimé.Gets a value that indicates whether the communication object has been disposed.

(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é.Gets or sets the flow control limit for messages received by the service hosted.

(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.Gets or sets the interval of time allowed for the service host to open.

(Hérité de ServiceHostBase)
SingletonInstance

Obtient l'instance singleton du service hébergé.Gets the singleton instance of the hosted service.

(Hérité de ServiceHost)
State

Obtient une valeur qui indique l'état actuel de l'objet de communication.Gets a value that indicates the current state of the communication object.

(Hérité de CommunicationObject)
ThisLock

Obtient le verrou mutuellement exclusif qui protège l'instance de classe pendant une transition d'état.Gets the mutually exclusive lock that protects the class instance during a state transition.

(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.Causes a communication object to transition immediately from its current state into the closing state.

(Hérité de CommunicationObject)
AddBaseAddress(Uri)

Ajoute une adresse de base à l'hôte du service.Adds a base address to the service host.

(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.Adds service endpoints for all base addresses in each contract found in the service host with the default binding.

(Hérité de ServiceHostBase)
AddServiceEndpoint(ServiceEndpoint)

Ajoute le point de terminaison de service spécifié au service hébergé.Adds the specified service endpoint to the hosted service.

(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.Adds a service endpoint to the hosted service with a specified contract, binding, and endpoint address.

(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.Adds a service endpoint to the hosted service with a specified contract, binding, endpoint address and URI that contains the address at which it listens.

(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.Adds a service endpoint to the hosted service with a specified contract, binding, and a URI that contains the endpoint address.

(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.Adds a service endpoint to the hosted service with the specified contract, binding, and URIs that contain the endpoint and listening addresses.

(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.Adds a service endpoint to the hosted service with a specified contract, binding, and endpoint address.

(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.Adds a service endpoint to the hosted service with a specified contract, binding, an endpoint address, and a URI on which the service listens.

(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.Adds a service endpoint to the hosted service with a specified contract, binding, and URI that contains the endpoint address.

(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.Adds a service endpoint to the hosted service with a specified contract, binding, a URI that contains the endpoint address, and a URI on which the service listens.

(Hérité de ServiceHost)
ApplyConfiguration()

Charge la description du service à partir du fichier de configuration et les applique au runtime en cours de construction.Loads the service description from the configuration file and applies it to the runtime being constructed.

(Hérité de ServiceHost)
BeginClose(AsyncCallback, Object)

Commence une opération asynchrone pour fermer un objet de communication.Begins an asynchronous operation to close a communication object.

(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é.Begins an asynchronous operation to close a communication object with a specified timeout.

(Hérité de CommunicationObject)
BeginOpen(AsyncCallback, Object)

Commence une opération asynchrone pour ouvrir un objet de communication.Begins an asynchronous operation to open a communication object.

(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é.Begins an asynchronous operation to open a communication object within a specified interval of time.

(Hérité de CommunicationObject)
Close()

Provoque la transition d'un objet de communication de son état actuel à l'état fermé.Causes a communication object to transition from its current state into the closed state.

(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é.Causes a communication object to transition from its current state into the closed state within a specified interval of time.

(Hérité de CommunicationObject)
CreateDescription(IDictionary<String,ContractDescription>)

Crée une description du service hébergé.Creates a description of the service hosted.

(Hérité de ServiceHost)
EndClose(IAsyncResult)

Termine une opération asynchrone pour fermer un objet de communication.Completes an asynchronous operation to close a communication object.

(Hérité de CommunicationObject)
EndOpen(IAsyncResult)

Termine une opération asynchrone pour ouvrir un objet de communication.Completes an asynchronous operation to open a communication object.

(Hérité de CommunicationObject)
Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
Fault()

Provoque la transition d'un objet de communication de son état actuel à l'état d'erreur.Causes a communication object to transition from its current state into the faulted state.

(Hérité de CommunicationObject)
GetCommunicationObjectType()

Obtient le type d'objet de communication.Gets the type of communication object.

(Hérité de CommunicationObject)
GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
IncrementManualFlowControlLimit(Int32)

Augmente la limite du flux de messages vers le service hébergé d'un incrément spécifié.Increases the limit on the flow rate of messages to the hosted service by a specified increment.

(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.Initializes a description of the service hosted based on its instance and specified base addresses.

(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.Initializes a description of the service hosted based on its type and specified base addresses.

(Hérité de ServiceHost)
InitializeDescription(UriSchemeKeyedCollection)

Crée et initialise l'hôte du service à l'aide des descriptions du contrat et du service.Creates and initializes the service host with the contract and service descriptions.

(Hérité de ServiceHostBase)
InitializeRuntime()

Initialise le runtime pour l'hôte du service.Initializes the runtime for the service host.

(Hérité de ServiceHostBase)
LoadConfigurationSection(ServiceElement)

Charge l'élément de service à partir du fichier de configuration du service hébergé.Loads the service element from the configuration file of the hosted service.

(Hérité de ServiceHostBase)
MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
OnAbort()

Abandonne le service.Aborts the service.

(Hérité de ServiceHostBase)
OnBeginClose(TimeSpan, AsyncCallback, Object)

Lance une opération asynchrone appelée à la fermeture de l'hôte du service.Begins an asynchronous operation invoked on the close of the service host.

(Hérité de ServiceHostBase)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

Lance une opération asynchrone appelée à l'ouverture de l'hôte du service.Begins an asynchronous operation invoked on the opening of the service host.

(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.Closes down the hosted service, including their channel dispatchers and associated instance contexts and listeners.

(Hérité de ServiceHostBase)
OnClosed()

Supprime les services supprimables hébergés lorsque l'hôte de service est fermé.Disposes of disposable services that are being hosted when the service host is closed.

(Hérité de ServiceHost)
OnClosing()

Appelé pendant la transition d'un objet de communication à l'état de fermeture.Invoked during the transition of a communication object into the closing state.

(Hérité de CommunicationObject)
OnEndClose(IAsyncResult)

Exécute une opération asynchrone appelée à la fermeture de l'hôte du service.Completes an asynchronous operation invoked on the closing of the service host.

(Hérité de ServiceHostBase)
OnEndOpen(IAsyncResult)

Exécute une opération asynchrone appelée à l'ouverture de l'hôte du service.Completes an asynchronous operation invoked on the opening of the service host.

(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.Inserts processing on a communication object after it transitions to the faulted state due to the invocation of a synchronous fault operation.

(Hérité de CommunicationObject)
OnOpen(TimeSpan)

Ouvre les répartiteurs de canal.Opens the channel dispatchers.

(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é.Gets the service credentials,service authentication and authorization behavior for the hosted service.

(Hérité de ServiceHostBase)
OnOpening()

Appelé lors de l'ouverture de l'instance de WebServiceHost.Called when the WebServiceHost instance opens.

Open()

Provoque la transition d'un objet de communication de l'état créé à l'état ouvert.Causes a communication object to transition from the created state into the opened state.

(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é.Causes a communication object to transition from the created state into the opened state within a specified interval of time.

(Hérité de CommunicationObject)
ReleasePerformanceCounters()

Libère les compteurs de performance du service et du répartiteur de canal pour le service hébergé.Releases the service and channel dispatcher performance counters for the hosted service.

(Hérité de ServiceHostBase)
SetEndpointAddress(ServiceEndpoint, String)

Définit l'adresse du point de terminaison spécifiée sur l'adresse spécifiée.Sets the endpoint address of the specified endpoint to the specified address.

(Hérité de ServiceHostBase)
ThrowIfDisposed()

Renvoie une exception si l'objet de communication est supprimé.Throws an exception if the communication object is disposed.

(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.Throws an exception if the communication object the State property is not set to the Created state.

(Hérité de CommunicationObject)
ThrowIfDisposedOrNotOpen()

Renvoie une exception si l'objet de communication n'est pas dans l'état Opened.Throws an exception if the communication object is not in the Opened state.

(Hérité de CommunicationObject)
ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Hérité de Object)

Événements

Closed

Se produit lorsqu'un objet de communication passe à l'état fermé.Occurs when a communication object transitions into the closed state.

(Hérité de CommunicationObject)
Closing

Se produit lorsqu'un objet de communication passe à l'état de fermeture.Occurs when a communication object transitions into the closing state.

(Hérité de CommunicationObject)
Faulted

Se produit lorsqu'un objet de communication passe à l'état d'erreur.Occurs when a communication object transitions into the faulted state.

(Hérité de CommunicationObject)
Opened

Se produit lorsqu'un objet de communication passe à l'état ouvert.Occurs when a communication object transitions into the opened state.

(Hérité de CommunicationObject)
Opening

Se produit lorsqu'un objet de communication passe à l'état d'ouverture.Occurs when a communication object transitions into the opening state.

(Hérité de CommunicationObject)
UnknownMessageReceived

Se produit lorsqu'un message inconnu est reçu.Occurs when an unknown message is received.

(Hérité de ServiceHostBase)

Implémentations d’interfaces explicites

IDisposable.Dispose()

Ferme l'hôte du service.Closes the service host.

(Hérité de ServiceHostBase)

S’applique à