ServiceHostBase Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
- 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. |