Condividi tramite


ServiceHostBase Classe

Definizione

Estende la classe ServiceHostBase per implementare host che espongono modelli di programmazione personalizzati.

public ref class ServiceHostBase abstract : System::ServiceModel::Channels::CommunicationObject, IDisposable, System::ServiceModel::IExtensibleObject<System::ServiceModel::ServiceHostBase ^>
public abstract class ServiceHostBase : System.ServiceModel.Channels.CommunicationObject, IDisposable, System.ServiceModel.IExtensibleObject<System.ServiceModel.ServiceHostBase>
type ServiceHostBase = class
    inherit CommunicationObject
    interface IExtensibleObject<ServiceHostBase>
    interface IDisposable
Public MustInherit Class ServiceHostBase
Inherits CommunicationObject
Implements IDisposable, IExtensibleObject(Of ServiceHostBase)
Ereditarietà
ServiceHostBase
Derivato
Implementazioni

Esempio

Questo esempio usa la ServiceHost classe, derivata da ServiceHostBase.

// Host the service within this EXE console application.
public static void Main()
{
  using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService)))
  {
    try
    {
      // Open the ServiceHost to start listening for messages.
      serviceHost.Open();

        // The service can now be accessed.
      Console.WriteLine("The service is ready.");
      Console.WriteLine("Press <ENTER> to terminate service.");
      Console.ReadLine();

      // Close the ServiceHost.
      serviceHost.Close();
    }
    catch (TimeoutException timeProblem)
    {
      Console.WriteLine(timeProblem.Message);
      Console.ReadLine();
    }
    catch (CommunicationException commProblem)
    {
      Console.WriteLine(commProblem.Message);
      Console.ReadLine();
    }
  }
}
' Host the service within this EXE console application.
Public Shared Sub Main()
    ' Create a ServiceHost for the CalculatorService type and use the base address from config.
    Using svcHost As New ServiceHost(GetType(CalculatorService))
        Try
            ' Open the ServiceHost to start listening for messages.
            svcHost.Open()

            ' The service can now be accessed.
            Console.WriteLine("The service is ready.")
            Console.WriteLine("Press <ENTER> to terminate service.")
            Console.WriteLine()
            Console.ReadLine()

            'Close the ServiceHost.
            svcHost.Close()

        Catch timeout As TimeoutException
            Console.WriteLine(timeout.Message)
            Console.ReadLine()
        Catch commException As CommunicationException
            Console.WriteLine(commException.Message)
            Console.ReadLine()
        End Try
    End Using

End Sub

Commenti

Usare la ServiceHostBase classe per creare host che forniscono un modello di programmazione personalizzato. Il modello di programmazione del servizio Windows Communication Foundation (WCF) usa la ServiceHost classe .

Nota speciale in caso di derivazione da questa classe in C++ gestito:

  • Inserire il codice di pulizia in (On)(Begin)Close (e/o OnAbort), non in un distruttore.

  • Evitare i distruttori perché comportano la generazione automatica di IDisposable da parte del compilatore.

  • Evitare membri non di riferimento perché possono comportare la generazione automatica di IDisposable da parte del compilatore.

  • Evitare i finalizzatori. Se tuttavia si include un finalizzatore, è necessario annullare l'avviso di compilazione e chiamare il metodo SuppressFinalize(Object) e il finalizzatore stesso mediante (On)(Begin)Close (e/o OnAbort) al fine di emulare il comportamento dell'interfaccia IDisposable che sarebbe stata generata automaticamente.

Costruttori

ServiceHostBase()

Inizializza una nuova istanza della classe ServiceHostBase.

Proprietà

Authentication

Ottiene il comportamento di autenticazione.

Authorization

Ottiene il comportamento dell'autorizzazione per il servizio ospitato.

BaseAddresses

Ottiene gli indirizzi di base utilizzati dal servizio ospitato.

ChannelDispatchers

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

CloseTimeout

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

Credentials

Ottiene le credenziali per il servizio ospitato.

DefaultCloseTimeout

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

DefaultOpenTimeout

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

Description

Ottiene la descrizione del servizio ospitato.

Extensions

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

ImplementedContracts

Recupera i contratti implementati dal servizio ospitato.

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.

OpenTimeout

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

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.

AddDefaultEndpoints()

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

AddServiceEndpoint(ServiceEndpoint)

Aggiunge l'endpoint del servizio specificato al servizio ospitato.

AddServiceEndpoint(String, Binding, String)

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

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.

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.

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.

ApplyConfiguration()

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

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>)

Una volta implementato in una classe derivata, crea la descrizione del servizio ospitato.

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.

InitializeDescription(UriSchemeKeyedCollection)

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

InitializeRuntime()

Inizializza il runtime per l'host del servizio.

LoadConfigurationSection(ServiceElement)

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

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
OnAbort()

Interrompe il servizio.

OnBeginClose(TimeSpan, AsyncCallback, Object)

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

OnBeginOpen(TimeSpan, AsyncCallback, Object)

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

OnClose(TimeSpan)

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

OnClosed()

Rilascia le risorse utilizzate dall'host del servizio.

OnClosed()

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

(Ereditato da CommunicationObject)
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.

OnEndOpen(IAsyncResult)

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

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.

OnOpened()

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

OnOpening()

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

(Ereditato da CommunicationObject)
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.

SetEndpointAddress(ServiceEndpoint, String)

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

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.

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose()

Chiude l'host del servizio.

Si applica a