Compartilhar via


ServiceHostBase Classe

Definição

Estende a classe ServiceHostBase para implementar os hosts que expõem os 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

Este exemplo usa 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

Comentários

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

Observação especial para usuários C++ gerenciados derivados desta classe:

  • Coloque o código de limpeza em (On)(Begin)Close (e/ou OnAbort), não em um destruidor.

  • Evite destruidores; eles fazem com que o compilador gere IDisposableautomaticamente .

  • Evitar membros não referenciados; eles podem fazer com que o compilador gere IDisposableautomaticamente .

  • Evitar finalizadores; mas se você incluir um, deverá suprimir o aviso de build e chamar SuppressFinalize(Object) e o finalizador em si de (On)(Begin)Close (e/ou OnAbort) para emular o que teria sido o comportamento gerado automaticamente IDisposable .

Construtores

ServiceHostBase()

Inicializa uma nova instância da classe ServiceHostBase.

Propriedades

Authentication

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

Authorization

Obtém o comportamento de autorização para o serviço hospedado.

BaseAddresses

Obtém os endereços básicos usados pelo serviço hospedado.

ChannelDispatchers

Obtém a coleção de dispatchers de canal usada pelo host de serviço.

CloseTimeout

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

Credentials

Obtém a credencial para o serviço hospedado.

DefaultCloseTimeout

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

DefaultOpenTimeout

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

Description

Obtém a descrição do serviço hospedado.

Extensions

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

ImplementedContracts

Recupera os contratos implementados pelo serviço hospedado.

IsDisposed

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

(Herdado de CommunicationObject)
ManualFlowControlLimit

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

OpenTimeout

Obtém ou define um intervalo de tempo permitido para o host de 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 da classe durante uma transição de estado.

(Herdado de CommunicationObject)

Métodos

Abort()

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

(Herdado de CommunicationObject)
AddBaseAddress(Uri)

Adiciona um endereço básico ao host de serviço.

AddDefaultEndpoints()

Adiciona pontos de extremidade de serviço para todos os endereços base em cada contrato encontrado no host de serviço com a associação padrão.

AddServiceEndpoint(ServiceEndpoint)

Adiciona o ponto de extremidade de serviço especificado para o serviço hospedado.

AddServiceEndpoint(String, Binding, String)

Adiciona um ponto de extremidade de serviço ao serviço hospedado com um contrato, uma associação e um endereço do ponto de extremidade especificados.

AddServiceEndpoint(String, Binding, String, Uri)

Adiciona um ponto de extremidade de serviço ao serviço hospedado com um contrato especificado, associação, endereço do ponto de extremidade e URI que contém o endereço no qual ele escuta.

AddServiceEndpoint(String, Binding, Uri)

Adiciona um ponto de extremidade de serviço ao serviço hospedado com um contrato, uma associação e um URI especificados que contêm o endereço do ponto de extremidade.

AddServiceEndpoint(String, Binding, Uri, Uri)

Adiciona um ponto de extremidade de serviço ao serviço hospedado com o contrato, a associação e os URIs especificados que contêm os endereços do ponto de extremidade e de escuta.

ApplyConfiguration()

Carrega as informações de descrição de serviço do arquivo de configuração e aplica-as ao runtime que está sendo 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 tempo limite 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 estado atual para o estado fechado.

(Herdado de CommunicationObject)
Close(TimeSpan)

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

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

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

EndClose(IAsyncResult)

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

(Herdado de CommunicationObject)
EndOpen(IAsyncResult)

Conclui 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 estado atual para o estado com falha.

(Herdado de CommunicationObject)
GetCommunicationObjectType()

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

(Herdado de CommunicationObject)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IncrementManualFlowControlLimit(Int32)

Aumenta o limite da taxa de fluxo de mensagens para o serviço hospedado por um incremento especificado.

InitializeDescription(UriSchemeKeyedCollection)

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

InitializeRuntime()

Inicializa o runtime para o host de serviço.

LoadConfigurationSection(ServiceElement)

Carrega o elemento de serviço do arquivo de configuração do serviço hospedado.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnAbort()

Anula o serviço.

OnBeginClose(TimeSpan, AsyncCallback, Object)

Inicia uma operação assíncrona invocada no fechamento 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 hospedado, incluindo seus dispatchers de canal e ouvintes e contextos de instância associados.

OnClosed()

Libera os recursos usados pelo host de serviço.

OnClosed()

Chamada durante a transição de um objeto de comunicação para o estado de fechamento.

(Herdado de CommunicationObject)
OnClosing()

Chamada durante a transição de um objeto de comunicação para o estado de fechamento.

(Herdado de CommunicationObject)
OnEndClose(IAsyncResult)

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

OnEndOpen(IAsyncResult)

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

OnFaulted()

Insere o processamento em um objeto de comunicação depois que ela fez a transição para o estado de fechamento devido à invocação de uma operação fault síncrona.

(Herdado de CommunicationObject)
OnOpen(TimeSpan)

Abre os dispatchers de canal.

OnOpened()

Obtém as credenciais de serviço, a autenticação de serviço e o comportamento de autorização para o serviço hospedado.

OnOpening()

Chamada durante a transição de um objeto de comunicação no 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 em um intervalo de tempo especificado.

(Herdado de CommunicationObject)
ReleasePerformanceCounters()

Libera os contadores de desempenho do dispatcher de serviço e canal para o serviço hospedado.

SetEndpointAddress(ServiceEndpoint, String)

Define o endereço do ponto de extremidade especificado como o endereço especificado.

ThrowIfDisposed()

Gera uma exceção se o objeto de comunicação é descartado.

(Herdado de CommunicationObject)
ThrowIfDisposedOrImmutable()

Gera uma exceção se o objeto de comunicação da propriedade State não estiver definido para o estado Created.

(Herdado de CommunicationObject)
ThrowIfDisposedOrNotOpen()

Gera uma exceção se o objeto de comunicação não estiver no estado Opened.

(Herdado de CommunicationObject)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Eventos

Closed

Ocorre quando um objeto de comunicação entra no estado fechado.

(Herdado de CommunicationObject)
Closing

Ocorre quando um objeto de comunicação faz a transição para o estado fechado.

(Herdado de CommunicationObject)
Faulted

Ocorre quando um objeto de comunicação entra em um estado de falha.

(Herdado de CommunicationObject)
Opened

Ocorre quando um objeto de comunicação faz a transição para o estado aberto.

(Herdado de CommunicationObject)
Opening

Ocorre quando um objeto de comunicação faz a transição para o estado de abertura.

(Herdado de CommunicationObject)
UnknownMessageReceived

Ocorre quando uma mensagem desconhecida é recebida.

Implantações explícitas de interface

IDisposable.Dispose()

Fecha o host de serviço.

Aplica-se a