WebServiceHost Classe

Definição

Uma classe derivada ServiceHost que complementa o modelo de programação 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
Herança
Derivado

Exemplos

O exemplo seguinte mostra como usar a WebServiceHost classe para hospedar um serviço que utiliza o modelo de programação WCF REST.

[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

Observações

Se WebServiceHost não encontrar endpoints na descrição do serviço, cria automaticamente um endpoint predefinido no endereço base do serviço para os endereços base HTTP e HTTPS. Não cria automaticamente um endpoint se o utilizador tiver configurado explicitamente um endpoint no endereço base. WebServiceHost configura automaticamente a ligação do endpoint para funcionar com as definições de segurança Serviços de Informação Internet (IIS) associadas quando usada num diretório virtual seguro.

Ao criar um ponto de extremidade HTTP padrão, o WebServiceHost também desabilita a página Ajuda HTTP e a funcionalidade GET WSDL (Web Services Description Language) para que o ponto de extremidade de metadados não interfira com o ponto de extremidade HTTP padrão.

Além disso, a WebServiceHost classe adiciona o WebHttpBehavior a todos os endpoints que ainda não têm o comportamento e que têm um WebMessageEncodingElement. Se todas as operações no serviço tiverem corpos de pedido HTTP vazios ou lidarem com o corpo do pedido HTTP como um fluxo, então configura WebServiceHost automaticamente o mapeador de tipo de conteúdo apropriado para a ligação.

Construtores

Name Description
WebServiceHost()

Inicializa uma nova instância da WebServiceHost classe.

WebServiceHost(Object, Uri[])

Inicializa uma nova instância da WebServiceHost classe com a instância de servidor singleton especificada e o endereço base.

WebServiceHost(Type, Uri[])

Inicializa uma nova instância da WebServiceHost classe com o tipo de serviço especificado e o endereço base.

Propriedades

Name Description
Authentication

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

(Herdado de ServiceHostBase)
Authorization

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

(Herdado de ServiceHostBase)
BaseAddresses

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

(Herdado de ServiceHostBase)
ChannelDispatchers

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

(Herdado de ServiceHostBase)
CloseTimeout

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

(Herdado de ServiceHostBase)
Credentials

Obtém a credencial do serviço alojado.

(Herdado de ServiceHostBase)
DefaultCloseTimeout

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

(Herdado de ServiceHostBase)
DefaultOpenTimeout

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

(Herdado de ServiceHostBase)
Description

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

(Herdado de ServiceHostBase)
Extensions

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

(Herdado de ServiceHostBase)
ImplementedContracts

Recupera os contratos implementados pelo serviço alojado.

(Herdado de ServiceHostBase)
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.

(Herdado de ServiceHostBase)
OpenTimeout

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

(Herdado de ServiceHostBase)
SingletonInstance

Obtém a instância singleton do serviço alojado.

(Herdado de ServiceHost)
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.

(Herdado de ServiceHostBase)
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.

(Herdado de ServiceHostBase)
AddServiceEndpoint(ServiceEndpoint)

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

(Herdado de ServiceHostBase)
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.

(Herdado de ServiceHostBase)
AddServiceEndpoint(String, Binding, String)

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

(Herdado de ServiceHostBase)
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.

(Herdado de ServiceHostBase)
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.

(Herdado de ServiceHostBase)
AddServiceEndpoint(Type, Binding, String, Uri)

Adiciona um endpoint de serviço ao serviço alojado com um contrato especificado, vinculação, um endereço de endpoint e um URI onde o serviço escuta.

(Herdado de ServiceHost)
AddServiceEndpoint(Type, Binding, String)

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

(Herdado de ServiceHost)
AddServiceEndpoint(Type, Binding, Uri, Uri)

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

(Herdado de ServiceHost)
AddServiceEndpoint(Type, Binding, Uri)

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

(Herdado de ServiceHost)
ApplyConfiguration()

Carrega a 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.

(Herdado de ServiceHost)
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>)

Cria uma descrição do serviço alojado.

(Herdado de ServiceHost)
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.

(Herdado de ServiceHostBase)
InitializeDescription(Object, UriSchemeKeyedCollection)

Inicializa uma descrição do serviço hospedado com base na sua instância e nos endereços base especificados.

(Herdado de ServiceHost)
InitializeDescription(Type, UriSchemeKeyedCollection)

Inicializa uma descrição do serviço alojado com base no seu tipo e nos endereços base especificados.

(Herdado de ServiceHost)
InitializeDescription(UriSchemeKeyedCollection)

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

(Herdado de ServiceHostBase)
InitializeRuntime()

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

(Herdado de ServiceHostBase)
LoadConfigurationSection(ServiceElement)

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

(Herdado de ServiceHostBase)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
OnAbort()

Aborta o serviço.

(Herdado de ServiceHostBase)
OnBeginClose(TimeSpan, AsyncCallback, Object)

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

(Herdado de ServiceHostBase)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

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

(Herdado de ServiceHostBase)
OnClose(TimeSpan)

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

(Herdado de ServiceHostBase)
OnClosed()

Elimina os serviços descartáveis que estão alojados quando o anfitrião do serviço está fechado.

(Herdado de ServiceHost)
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.

(Herdado de ServiceHostBase)
OnEndOpen(IAsyncResult)

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

(Herdado de ServiceHostBase)
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.

(Herdado de ServiceHostBase)
OnOpened()

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

(Herdado de ServiceHostBase)
OnOpening()

É chamado quando a WebServiceHost instância abre.

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.

(Herdado de ServiceHostBase)
SetEndpointAddress(ServiceEndpoint, String)

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

(Herdado de ServiceHostBase)
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.

(Herdado de ServiceHostBase)

Implementações de Interface Explícita

Name Description
IDisposable.Dispose()

Fecha o anfitrião de serviço.

(Herdado de ServiceHostBase)

Aplica-se a