ServiceHostBase Classe

Definição

Estende a ServiceHostBase classe para implementar hosts que expõem modelos de programação personalizados.

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)
Herança
ServiceHostBase
Derivado
Implementações

Exemplos

Esta amostra utiliza a ServiceHost classe, que é derivada de 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

Observações

Use a ServiceHostBase classe para criar hosts que forneçam um modelo de programação personalizado. O modelo de programação de serviço Windows Communication Foundation (WCF) utiliza a classe ServiceHost.

Nota especial para utilizadores de C++ gerido derivados desta classe:

  • Coloca o teu código de limpeza em (On)(Begin)Close (e/ou OnAbort), não num destrutor.
  • Evitar destruidores; elas fazem com que o compilador gere IDisposableautomaticamente .
  • Evite membros que não sejam de referência; podem fazer com que o compilador gere IDisposableautomaticamente .
  • Evite finalizadores; mas se incluir um, deve suprimir o aviso de compilação e a chamada SuppressFinalize(Object) e o próprio finalizador de (On)(Begin)Close (e/ou OnAbort) para emular o que teria sido o comportamento gerado IDisposable automaticamente.

Construtores

Name Description
ServiceHostBase()

Inicializa uma nova instância da ServiceHostBase classe.

Propriedades

Name Description
Authentication

Obtém o comportamento de autenticação do serviço.

Authorization

Obtém o comportamento de autorização do serviço alojado.

BaseAddresses

Obtém os endereços base usados pelo serviço alojado.

ChannelDispatchers

Obtém a coleção de despachantes de canal utilizada pelo anfitrião de serviço.

CloseTimeout

Obtém ou define o intervalo de tempo permitido para o host do serviço fechar.

Credentials

Obtém a credencial do serviço alojado.

DefaultCloseTimeout

Obtém o intervalo de tempo padrão permitido para o host do serviço fechar.

DefaultOpenTimeout

Obtém o intervalo de tempo padrão permitido para o host do serviço abrir.

Description

Recebe a descrição do serviço alojado.

Extensions

Obtém as extensões para o host de serviço atualmente especificado.

ImplementedContracts

Recupera os contratos implementados pelo serviço alojado.

IsDisposed

Obtém um valor que indica se o objeto de comunicação foi eliminado.

(Herdado de CommunicationObject)
ManualFlowControlLimit

Obtém ou define o limite de controlo de fluxo para mensagens recebidas pelo serviço alojado.

OpenTimeout

Obtém ou define o intervalo de tempo permitido para o host do serviço abrir.

State

Obtém um valor que indica o estado atual do objeto de comunicação.

(Herdado de CommunicationObject)
ThisLock

Obtém o bloqueio mutuamente exclusivo que protege a instância de classe durante uma transição de estado.

(Herdado de CommunicationObject)

Métodos

Name Description
Abort()

Faz com que um objeto de comunicação transite imediatamente do seu estado atual para o estado de fecho.

(Herdado de CommunicationObject)
AddBaseAddress(Uri)

Adiciona um endereço base ao host do serviço.

AddDefaultEndpoints()

Adiciona endpoints de serviço para todos os endereços base em cada contrato encontrados no host de serviço com a ligação predefinida.

AddServiceEndpoint(ServiceEndpoint)

Adiciona o endpoint de serviço especificado ao serviço alojado.

AddServiceEndpoint(String, Binding, String, Uri)

Adiciona um endpoint de serviço ao serviço hospedado com um contrato especificado, vinculação, endereço de endpoint e URI que contém o endereço onde ouve.

AddServiceEndpoint(String, Binding, String)

Adiciona um endpoint de serviço ao serviço alojado com um contrato, binding e endereço de endpoint especificados.

AddServiceEndpoint(String, Binding, Uri, Uri)

Adiciona um endpoint de serviço ao serviço hospedado com o contrato especificado, binding e URIs que contêm os endereços endpoint e de escuta.

AddServiceEndpoint(String, Binding, Uri)

Adiciona um endpoint de serviço ao serviço hospedado com um contrato especificado, binding e um URI que contém o endereço do endpoint.

ApplyConfiguration()

Carrega a informação de descrição do serviço a partir do ficheiro de configuração e aplica-a ao tempo de execução que está a ser construído.

BeginClose(AsyncCallback, Object)

Inicia uma operação assíncrona para fechar um objeto de comunicação.

(Herdado de CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Inicia uma operação assíncrona para fechar um objeto de comunicação com um timeout especificado.

(Herdado de CommunicationObject)
BeginOpen(AsyncCallback, Object)

Inicia uma operação assíncrona para abrir um objeto de comunicação.

(Herdado de CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Inicia uma operação assíncrona para abrir um objeto de comunicação dentro de um intervalo de tempo especificado.

(Herdado de CommunicationObject)
Close()

Faz com que um objeto de comunicação faça a transição do seu estado atual para o estado fechado.

(Herdado de CommunicationObject)
Close(TimeSpan)

Faz com que um objeto de comunicação transite do seu estado atual para o estado fechado dentro de um intervalo de tempo especificado.

(Herdado de CommunicationObject)
CreateDescription(IDictionary<String,ContractDescription>)

Quando implementado numa classe derivada, cria a descrição do serviço hospedado.

EndClose(IAsyncResult)

Completa uma operação assíncrona para fechar um objeto de comunicação.

(Herdado de CommunicationObject)
EndOpen(IAsyncResult)

Completa uma operação assíncrona para abrir um objeto de comunicação.

(Herdado de CommunicationObject)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Fault()

Faz com que um objeto de comunicação faça a transição do seu estado atual para o estado defeituoso.

(Herdado de CommunicationObject)
GetCommunicationObjectType()

Obtém o tipo de objeto de comunicação.

(Herdado de CommunicationObject)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IncrementManualFlowControlLimit(Int32)

Aumenta o limite da taxa de fluxo das mensagens para o serviço alojado num incremento especificado.

InitializeDescription(UriSchemeKeyedCollection)

Cria e inicializa o host de serviço com o contrato e as descrições do serviço.

InitializeRuntime()

Inicializa o tempo de execução do host de serviço.

LoadConfigurationSection(ServiceElement)

Carrega o elemento de serviço a partir do ficheiro de configuração do serviço alojado.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
OnAbort()

Aborta o serviço.

OnBeginClose(TimeSpan, AsyncCallback, Object)

Inicia uma operação assíncrona invocada no encerramento do host de serviço.

OnBeginOpen(TimeSpan, AsyncCallback, Object)

Inicia uma operação assíncrona invocada na abertura do host de serviço.

OnClose(TimeSpan)

Fecha o serviço alojado, incluindo os seus despachantes de canal e os contextos de instância e ouvintes associados.

OnClosed()

Liberta os recursos utilizados pelo anfitrião do serviço.

OnClosed()

Invocado durante a transição de um objeto de comunicação para o estado de fecho.

(Herdado de CommunicationObject)
OnClosing()

Invocado durante a transição de um objeto de comunicação para o estado de fecho.

(Herdado de CommunicationObject)
OnEndClose(IAsyncResult)

Conclui uma operação assíncrona invocada no encerramento do host de serviço.

OnEndOpen(IAsyncResult)

Conclui uma operação assíncrona invocada na abertura do host de serviço.

OnFaulted()

Insere processamento num objeto de comunicação após esta transitar para o estado de falha devido à invocação de uma operação de falha síncrona.

(Herdado de CommunicationObject)
OnOpen(TimeSpan)

Abre os despachantes do canal.

OnOpened()

Obtém as credenciais do serviço, autenticação e comportamento de autorização do serviço alojado.

OnOpening()

Invocado durante a transição de um objeto de comunicação para o estado de abertura.

(Herdado de CommunicationObject)
Open()

Faz com que um objeto de comunicação faça a transição do estado criado para o estado aberto.

(Herdado de CommunicationObject)
Open(TimeSpan)

Faz com que um objeto de comunicação faça a transição do estado criado para o estado aberto dentro de um intervalo de tempo especificado.

(Herdado de CommunicationObject)
ReleasePerformanceCounters()

Liberta os contadores de desempenho do serviço e do despachante de canal para o serviço alojado.

SetEndpointAddress(ServiceEndpoint, String)

Define o endereço de endpoint do endpoint especificado para o endereço especificado.

ThrowIfDisposed()

Lança uma exceção se o objeto de comunicação for eliminado.

(Herdado de CommunicationObject)
ThrowIfDisposedOrImmutable()

Lança uma exceção se a propriedade do objeto State de comunicação não estiver definida para o Created estado.

(Herdado de CommunicationObject)
ThrowIfDisposedOrNotOpen()

Lança uma exceção se o objeto de comunicação não estiver nesse Opened estado.

(Herdado de CommunicationObject)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

evento

Name Description
Closed

Ocorre quando um objeto de comunicação transita para o estado fechado.

(Herdado de CommunicationObject)
Closing

Ocorre quando um objeto de comunicação transita para o estado de fecho.

(Herdado de CommunicationObject)
Faulted

Ocorre quando um objeto de comunicação transita para o estado falhado.

(Herdado de CommunicationObject)
Opened

Ocorre quando um objeto de comunicação transita para o estado aberto.

(Herdado de CommunicationObject)
Opening

Ocorre quando um objeto de comunicação transita para o estado de abertura.

(Herdado de CommunicationObject)
UnknownMessageReceived

Ocorre quando uma mensagem desconhecida é recebida.

Implementações de Interface Explícita

Name Description
IDisposable.Dispose()

Fecha o anfitrião de serviço.

Aplica-se a