WebServiceHost Classe

Definizione

Classe derivata ServiceHost che integra il modello di programmazione 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
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 gli indirizzi di base HTTP e HTTPS. Non crea automaticamente un endpoint se l'utente ha configurato un endpoint in modo esplicito nell'indirizzo di base. WebServiceHost configura automaticamente l'associazione dell'endpoint in modo che funzioni con le impostazioni di sicurezza Internet Information Services (IIS) associate quando vengono usate in una directory virtuale sicura.

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

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

Costruttori

Nome Descrizione
WebServiceHost()

Inizializza una nuova istanza della classe WebServiceHost.

WebServiceHost(Object, Uri[])

Inizializza una nuova istanza della WebServiceHost classe con l'istanza del server singleton e l'indirizzo di base specificati.

WebServiceHost(Type, Uri[])

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

Proprietà

Nome Descrizione
Authentication

Ottiene il comportamento di autenticazione del servizio.

(Ereditato da ServiceHostBase)
Authorization

Ottiene il comportamento di 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 dispatcher del canale 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 del 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

Ottiene 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 che protegge l'istanza della classe durante una transizione di stato.

(Ereditato da CommunicationObject)

Metodi

Nome Descrizione
Abort()

Fa sì che un oggetto di comunicazione passi immediatamente 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 di servizio specificato al servizio ospitato.

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

Aggiunge un endpoint di servizio al servizio ospitato con un contratto, un'associazione, un indirizzo endpoint e un URI specificati che contiene l'indirizzo in cui è in ascolto.

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

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

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

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

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

Aggiunge un endpoint di servizio al servizio ospitato con un contratto, un'associazione e un URI specificati che contiene l'indirizzo dell'endpoint.

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

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

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

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

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

Aggiunge un endpoint di servizio al servizio ospitato con un contratto, un'associazione, un URI che contiene l'indirizzo dell'endpoint e un URI in cui il servizio è in ascolto.

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

Aggiunge un endpoint di servizio al servizio ospitato con un contratto, un'associazione e un URI specificati che contiene l'indirizzo dell'endpoint.

(Ereditato da ServiceHost)
ApplyConfiguration()

Carica la descrizione del servizio dal file di configurazione e la applica al runtime in fase di costruzione.

(Ereditato da ServiceHost)
BeginClose(AsyncCallback, Object)

Avvia un'operazione asincrona per chiudere un oggetto di comunicazione.

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

Avvia un'operazione asincrona per chiudere un oggetto di comunicazione con un timeout specificato.

(Ereditato da CommunicationObject)
BeginOpen(AsyncCallback, Object)

Avvia un'operazione asincrona per aprire un oggetto di comunicazione.

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

Avvia un'operazione asincrona per aprire un oggetto di comunicazione entro un intervallo di tempo specificato.

(Ereditato da CommunicationObject)
Close()

Fa sì che un oggetto di comunicazione passi dallo stato corrente allo stato chiuso.

(Ereditato da CommunicationObject)
Close(TimeSpan)

Fa sì che un oggetto di comunicazione passi dallo stato corrente allo stato chiuso entro un intervallo di tempo specificato.

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

Crea una descrizione del servizio ospitato.

(Ereditato da ServiceHost)
EndClose(IAsyncResult)

Completa un'operazione asincrona per chiudere un oggetto di comunicazione.

(Ereditato da CommunicationObject)
EndOpen(IAsyncResult)

Completa un'operazione asincrona per aprire un oggetto di comunicazione.

(Ereditato da CommunicationObject)
Equals(Object)

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

(Ereditato da Object)
Fault()

Fa sì che un oggetto di comunicazione passi dallo stato corrente allo stato di errore.

(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 il Type dell'istanza corrente.

(Ereditato da Object)
IncrementManualFlowControlLimit(Int32)

Aumenta il limite alla frequenza di flusso dei messaggi al servizio ospitato da un incremento specificato.

(Ereditato da ServiceHostBase)
InitializeDescription(Object, UriSchemeKeyedCollection)

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

(Ereditato da ServiceHost)
InitializeDescription(Type, UriSchemeKeyedCollection)

Inizializza 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 del Objectcorrente.

(Ereditato da Object)
OnAbort()

Interrompe il servizio.

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

Avvia un'operazione asincrona richiamata sulla 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, inclusi i dispatcher del canale e i contesti e i listener dell'istanza associati.

(Ereditato da ServiceHostBase)
OnClosed()

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

(Ereditato da ServiceHost)
OnClosing()

Richiamato durante la transizione di un oggetto di comunicazione nello 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 la transizione allo stato di errore a causa della chiamata di un'operazione di errore sincrono.

(Ereditato da CommunicationObject)
OnOpen(TimeSpan)

Apre i dispatcher del canale.

(Ereditato da ServiceHostBase)
OnOpened()

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

(Ereditato da ServiceHostBase)
OnOpening()

Chiamato all'apertura dell'istanza WebServiceHost .

Open()

Fa sì che un oggetto di comunicazione passi dallo stato creato allo stato aperto.

(Ereditato da CommunicationObject)
Open(TimeSpan)

Fa sì che un oggetto di comunicazione passi dallo stato creato allo stato aperto entro un intervallo di tempo specificato.

(Ereditato da CommunicationObject)
ReleasePerformanceCounters()

Rilascia i contatori delle prestazioni del servizio e del dispatcher del canale per il servizio ospitato.

(Ereditato da ServiceHostBase)
SetEndpointAddress(ServiceEndpoint, String)

Imposta l'indirizzo endpoint dell'endpoint specificato sull'indirizzo specificato.

(Ereditato da ServiceHostBase)
ThrowIfDisposed()

Genera un'eccezione se l'oggetto di comunicazione viene eliminato.

(Ereditato da CommunicationObject)
ThrowIfDisposedOrImmutable()

Genera un'eccezione se l'oggetto di comunicazione la State proprietà non è impostata sullo Created stato .

(Ereditato da CommunicationObject)
ThrowIfDisposedOrNotOpen()

Genera un'eccezione se l'oggetto di comunicazione non è nello Opened stato .

(Ereditato da CommunicationObject)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Eventi

Nome Descrizione
Closed

Si verifica quando un oggetto di comunicazione passa allo stato chiuso.

(Ereditato da CommunicationObject)
Closing

Si verifica quando un oggetto di comunicazione passa allo stato di chiusura.

(Ereditato da CommunicationObject)
Faulted

Si verifica quando un oggetto di comunicazione passa allo stato di errore.

(Ereditato da CommunicationObject)
Opened

Si verifica quando un oggetto di comunicazione passa allo stato aperto.

(Ereditato da CommunicationObject)
Opening

Si verifica quando un oggetto di comunicazione passa allo stato di apertura.

(Ereditato da CommunicationObject)
UnknownMessageReceived

Si verifica quando viene ricevuto un messaggio sconosciuto.

(Ereditato da ServiceHostBase)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IDisposable.Dispose()

Chiude l'host del servizio.

(Ereditato da ServiceHostBase)

Si applica a