WebServiceHost Classe

Definizione

Classe derivata da ServiceHost che integra il modello di programmazione REST di 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
Ereditarietà
Derivato

Esempio

Nell'esempio seguente viene illustrato come usare la WebServiceHost classe per ospitare un servizio che usa il modello di programmazione 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

Commenti

Se WebServiceHost non trova endpoint nella descrizione del servizio, crea automaticamente un endpoint predefinito all'indirizzo di base del servizio per indirizzi di base HTTP e HTTPS. Non crea automaticamente un endpoint se l'utente ha configurato in modo esplicito un endpoint all'indirizzo di base. WebServiceHost configura automaticamente l'associazione dell'endpoint in modo che funzioni con le impostazioni di sicurezza di Internet Information Services (IIS) associate quando vengono usate in una directory virtuale sicura.

Quando viene creato un endpoint HTTP predefinito, WebServiceHost disabilita anche la pagina della Guida HTTP e la funzionalità WSDL (Web Services Description Language) GET, in modo che l'endpoint dei metadati non interferisce con l'endpoint HTTP predefinito.

Inoltre, la classe WebServiceHost aggiunge WebHttpBehavior a tutti gli endpoint che non ancora hanno il comportamento e che dispongono di WebMessageEncodingElement. Se tutte le operazioni nel servizio hanno corpi della richiesta HTTP vuoti o gestiscono il corpo della richiesta HTTP come un flusso, WebServiceHost configura automaticamente l'utilità di mapping del tipo di contenuto appropriato per l'associazione.

Costruttori

WebServiceHost()

Inizializza una nuova istanza della classe WebServiceHost.

WebServiceHost(Object, Uri[])

Consente di inizializzare una nuova istanza della classe WebServiceHost con l'istanza del servizio singleton e l’indirizzo di base specificati.

WebServiceHost(Type, Uri[])

Consente di inizializzare una nuova istanza della classe WebServiceHost con il tipo di servizio e l'indirizzo di base specificati.

Proprietà

Authentication

Ottiene il comportamento di autenticazione.

(Ereditato da ServiceHostBase)
Authorization

Ottiene il comportamento dell'autorizzazione per il servizio ospitato.

(Ereditato da ServiceHostBase)
BaseAddresses

Ottiene gli indirizzi di base utilizzati dal servizio ospitato.

(Ereditato da ServiceHostBase)
ChannelDispatchers

Ottiene la raccolta di ChannelDispatcher utilizzati dall'host del servizio.

(Ereditato da ServiceHostBase)
CloseTimeout

Ottiene o imposta l'intervallo di tempo consentito per la chiusura dell'host del servizio.

(Ereditato da ServiceHostBase)
Credentials

Ottiene le credenziali per il servizio ospitato.

(Ereditato da ServiceHostBase)
DefaultCloseTimeout

Ottiene l'intervallo di tempo predefinito consentito per la chiusura dell'host del servizio.

(Ereditato da ServiceHostBase)
DefaultOpenTimeout

Ottiene l'intervallo di tempo predefinito consentito per l'apertura dell'host del servizio.

(Ereditato da ServiceHostBase)
Description

Ottiene la descrizione del servizio ospitato.

(Ereditato da ServiceHostBase)
Extensions

Ottiene le estensioni per l'host del servizio specificato corrente.

(Ereditato da ServiceHostBase)
ImplementedContracts

Recupera i contratti implementati dal servizio ospitato.

(Ereditato da ServiceHostBase)
IsDisposed

Ottiene un valore che indica se l'oggetto di comunicazione è stato eliminato.

(Ereditato da CommunicationObject)
ManualFlowControlLimit

Ottiene o imposta il limite di controllo di flusso per i messaggi ricevuti dal servizio ospitato.

(Ereditato da ServiceHostBase)
OpenTimeout

Ottiene o imposta l'intervallo di tempo consentito per l'apertura dell'host del servizio.

(Ereditato da ServiceHostBase)
SingletonInstance

Consente di ottenere l'istanza singleton del servizio ospitato.

(Ereditato da ServiceHost)
State

Ottiene un valore che indica lo stato corrente dell'oggetto di comunicazione.

(Ereditato da CommunicationObject)
ThisLock

Ottiene il blocco a esclusione reciproca che protegge l'istanza della classe durante una transizione di stato.

(Ereditato da CommunicationObject)

Metodi

Abort()

Determina la transizione immediata di un oggetto di comunicazione dallo stato corrente allo stato di chiusura.

(Ereditato da CommunicationObject)
AddBaseAddress(Uri)

Aggiunge un indirizzo di base all'host del servizio.

(Ereditato da ServiceHostBase)
AddDefaultEndpoints()

Aggiunge endpoint di servizio per tutti gli indirizzi di base in ogni contratto trovato nell'host del servizio con l'associazione predefinita.

(Ereditato da ServiceHostBase)
AddServiceEndpoint(ServiceEndpoint)

Aggiunge l'endpoint del servizio specificato al servizio ospitato.

(Ereditato da ServiceHostBase)
AddServiceEndpoint(String, Binding, String)

Consente di aggiungere al servizio ospitato un endpoint di servizio con il contratto, l'associazione e l'indirizzo endpoint specificati.

(Ereditato da ServiceHostBase)
AddServiceEndpoint(String, Binding, String, Uri)

Aggiunge un endpoint di servizio al servizio ospitato con il contratto, l'associazione e l'indirizzo endpoint specificati nonché l'URI contenente l'indirizzo su cui è in ascolto.

(Ereditato da ServiceHostBase)
AddServiceEndpoint(String, Binding, Uri)

Consente di aggiungere al servizio ospitato un endpoint di servizio con il contratto, l'associazione e l'URI contenente l'indirizzo endpoint specificati.

(Ereditato da ServiceHostBase)
AddServiceEndpoint(String, Binding, Uri, Uri)

Aggiunge al servizio ospitato un endpoint di servizio con il contratto, l'associazione e gli URI contenenti gli indirizzi endpoint e di ascolto specificati.

(Ereditato da ServiceHostBase)
AddServiceEndpoint(Type, Binding, String)

Consente di aggiungere al servizio ospitato un endpoint di servizio con il contratto, l'associazione e l'indirizzo endpoint specificati.

(Ereditato da ServiceHost)
AddServiceEndpoint(Type, Binding, String, Uri)

Aggiunge al servizio ospitato un endpoint di servizio con il contratto, l'associazione e l'indirizzo endpoint specificati nonché l'URI su cui il servizio è in ascolto.

(Ereditato da ServiceHost)
AddServiceEndpoint(Type, Binding, Uri)

Aggiunge al servizio ospitato un endpoint di servizio con il contratto, l'associazione e l'URI contenente l'indirizzo endpoint specificati.

(Ereditato da ServiceHost)
AddServiceEndpoint(Type, Binding, Uri, Uri)

Consente di aggiungere al servizio ospitato un endpoint di servizio con il contratto, l'associazione e l'URI contenente l'indirizzo endpoint specificati nonché l'URI su cui il servizio è in ascolto.

(Ereditato da ServiceHost)
ApplyConfiguration()

Carica la descrizione del servizio dal file di configurazione e la applica al runtime che viene creato.

(Ereditato da ServiceHost)
BeginClose(AsyncCallback, Object)

Consente di iniziare un'operazione asincrona finalizzata a chiudere un oggetto di comunicazione.

(Ereditato da CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Consente di iniziare un'operazione asincrona finalizzata a chiudere un oggetto di comunicazione entro un determinato intervallo di tempo.

(Ereditato da CommunicationObject)
BeginOpen(AsyncCallback, Object)

Consente di iniziare un'operazione asincrona finalizzata ad aprire un oggetto di comunicazione.

(Ereditato da CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Consente di iniziare un'operazione asincrona finalizzata ad aprire un oggetto di comunicazione entro un determinato intervallo di tempo.

(Ereditato da CommunicationObject)
Close()

Comporta la transizione di un oggetto di comunicazione dallo stato corrente allo stato di chiusura.

(Ereditato da CommunicationObject)
Close(TimeSpan)

Determina la transizione di un oggetto di comunicazione dallo stato corrente allo stato Closed entro un intervallo di tempo specificato.

(Ereditato da CommunicationObject)
CreateDescription(IDictionary<String,ContractDescription>)

Consente di creare una descrizione del servizio ospitato.

(Ereditato da ServiceHost)
EndClose(IAsyncResult)

Consente di completare un'operazione asincrona finalizzata a chiudere un oggetto di comunicazione.

(Ereditato da CommunicationObject)
EndOpen(IAsyncResult)

Consente di completare un'operazione asincrona finalizzata ad aprire un oggetto di comunicazione.

(Ereditato da CommunicationObject)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Fault()

Determina la transizione di un oggetto di comunicazione dallo stato corrente allo stato Faulted.

(Ereditato da CommunicationObject)
GetCommunicationObjectType()

Ottiene il tipo di oggetto di comunicazione.

(Ereditato da CommunicationObject)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IncrementManualFlowControlLimit(Int32)

Aumenta il limite sulla velocità di flusso dei messaggi verso il servizio ospitato in base a un incremento specificato.

(Ereditato da ServiceHostBase)
InitializeDescription(Object, UriSchemeKeyedCollection)

Consente di inizializzare una descrizione del servizio ospitato in base all'istanza e agli indirizzi di base specificati.

(Ereditato da ServiceHost)
InitializeDescription(Type, UriSchemeKeyedCollection)

Consente di inizializzare una descrizione del servizio ospitato in base al tipo e agli indirizzi di base specificati.

(Ereditato da ServiceHost)
InitializeDescription(UriSchemeKeyedCollection)

Crea e inizializza l'host del servizio con le descrizioni del contratto e del servizio.

(Ereditato da ServiceHostBase)
InitializeRuntime()

Inizializza il runtime per l'host del servizio.

(Ereditato da ServiceHostBase)
LoadConfigurationSection(ServiceElement)

Carica l'elemento del servizio dal file di configurazione del servizio ospitato.

(Ereditato da ServiceHostBase)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
OnAbort()

Interrompe il servizio.

(Ereditato da ServiceHostBase)
OnBeginClose(TimeSpan, AsyncCallback, Object)

Avvia un'operazione asincrona richiamata durante la chiusura dell'host del servizio.

(Ereditato da ServiceHostBase)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

Avvia un'operazione asincrona richiamata all'apertura dell'host del servizio.

(Ereditato da ServiceHostBase)
OnClose(TimeSpan)

Chiude il servizio ospitato, compresi i ChannelDispatcher e i contesti di istanza e i listener associati.

(Ereditato da ServiceHostBase)
OnClosed()

Elimina i servizi eliminabili ospitati quando l'host del servizio viene chiuso.

(Ereditato da ServiceHost)
OnClosing()

Viene chiamato durante la transizione di un oggetto di comunicazione allo stato di chiusura.

(Ereditato da CommunicationObject)
OnEndClose(IAsyncResult)

Completa un'operazione asincrona richiamata alla chiusura dell'host del servizio.

(Ereditato da ServiceHostBase)
OnEndOpen(IAsyncResult)

Completa un'operazione asincrona richiamata all'apertura dell'host del servizio.

(Ereditato da ServiceHostBase)
OnFaulted()

Inserisce l'elaborazione in un oggetto di comunicazione dopo che ha eseguito la transizione allo stato Faulted in seguito alla chiamata di un'operazione di errore sincrona.

(Ereditato da CommunicationObject)
OnOpen(TimeSpan)

Apre i ChannelDispatcher.

(Ereditato da ServiceHostBase)
OnOpened()

Ottiene le credenziali e l'autenticazione del servizio e il comportamento dell'autorizzazione per il servizio ospitato.

(Ereditato da ServiceHostBase)
OnOpening()

Elemento che viene chiamato quando l’istanza WebServiceHost viene aperta.

Open()

Comporta la transizione di un oggetto di comunicazione dallo stato di creazione allo stato di apertura.

(Ereditato da CommunicationObject)
Open(TimeSpan)

Comporta la transizione di un oggetto di comunicazione dallo stato di creazione allo stato di apertura entro un determinato intervallo di tempo.

(Ereditato da CommunicationObject)
ReleasePerformanceCounters()

Rilascia i contatori delle prestazioni del servizio e dei ChannelDispatcher per il servizio ospitato.

(Ereditato da ServiceHostBase)
SetEndpointAddress(ServiceEndpoint, String)

Imposta l'indirizzo dell'endpoint specificato sul valore specificato.

(Ereditato da ServiceHostBase)
ThrowIfDisposed()

Se l'oggetto di comunicazione è stato eliminato, genera un'eccezione.

(Ereditato da CommunicationObject)
ThrowIfDisposedOrImmutable()

Se la proprietà State dell'oggetto di comunicazione non è impostata su Created, genera un'eccezione.

(Ereditato da CommunicationObject)
ThrowIfDisposedOrNotOpen()

Se l'oggetto di comunicazione non si trova nello stato Opened, genera un'eccezione.

(Ereditato da CommunicationObject)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Eventi

Closed

Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Closed.

(Ereditato da CommunicationObject)
Closing

Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Closing.

(Ereditato da CommunicationObject)
Faulted

Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Faulted.

(Ereditato da CommunicationObject)
Opened

Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Opened.

(Ereditato da CommunicationObject)
Opening

Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Opening.

(Ereditato da CommunicationObject)
UnknownMessageReceived

Si verifica quando viene ricevuto un messaggio sconosciuto.

(Ereditato da ServiceHostBase)

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose()

Chiude l'host del servizio.

(Ereditato da ServiceHostBase)

Si applica a