Compartilhar via


WebServiceHost Classe

Definição

Uma classe derivada de ServiceHost que complementa o modelo de programação REST do WCF (Windows Communication Foundation).

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 a seguir mostra como usar a WebServiceHost classe para hospedar um serviço que usa o modelo de programação REST do WCF.

[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

Comentários

Se WebServiceHost não encontrar pontos de extremidade na descrição do serviço, ele criará automaticamente um ponto de extremidade padrão no endereço base do serviço para endereços base HTTP e HTTPS. Ele não criará um ponto de extremidade automaticamente se o usuário tiver configurado um ponto de extremidade explicitamente no endereço base. WebServiceHostconfigura automaticamente a associação do ponto de extremidade para trabalhar com as configurações de segurança do IIS (Serviços de Informações da Internet) associadas quando usadas em um diretório virtual seguro.

Ao criar um ponto de extremidade HTTP padrão, também WebServiceHost desabilita a página de Ajuda HTTP e a funcionalidade GET da Linguagem GET dos Serviços Web para que o ponto de extremidade de metadados não interfira no ponto de extremidade HTTP padrão.

Além disso, a WebServiceHost classe adiciona a WebHttpBehavior todos os pontos de extremidade 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 solicitação HTTP vazios ou lidarem com o corpo da solicitação HTTP como um fluxo, o WebServiceHost mapeador de tipo de conteúdo apropriado será configurado automaticamente para a associação.

Construtores

WebServiceHost()

Inicializa uma nova instância da classe WebServiceHost.

WebServiceHost(Object, Uri[])

Inicializa uma nova instância da classe WebServiceHost com o endereço básico e a instância de servidor singleton especificado.

WebServiceHost(Type, Uri[])

Inicializa uma nova instância da classe WebServiceHost com o endereço básico e o tipo de serviço especificados.

Propriedades

Authentication

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

(Herdado de ServiceHostBase)
Authorization

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

(Herdado de ServiceHostBase)
BaseAddresses

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

(Herdado de ServiceHostBase)
ChannelDispatchers

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

(Herdado de ServiceHostBase)
CloseTimeout

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

(Herdado de ServiceHostBase)
Credentials

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

(Herdado de ServiceHostBase)
DefaultCloseTimeout

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

(Herdado de ServiceHostBase)
DefaultOpenTimeout

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

(Herdado de ServiceHostBase)
Description

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

(Herdado de ServiceHostBase)
Extensions

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

(Herdado de ServiceHostBase)
ImplementedContracts

Recupera os contratos implementados pelo serviço hospedado.

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

(Herdado de ServiceHostBase)
OpenTimeout

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

(Herdado de ServiceHostBase)
SingletonInstance

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

(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 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.

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

(Herdado de ServiceHostBase)
AddServiceEndpoint(ServiceEndpoint)

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

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

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

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

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

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

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

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

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

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

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

(Herdado de ServiceHost)
ApplyConfiguration()

Carrega a descrição de serviço do arquivo de configuração e aplica-a ao runtime que está sendo 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 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>)

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

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

(Herdado de ServiceHostBase)
InitializeDescription(Object, UriSchemeKeyedCollection)

Inicializa uma descrição do serviço hospedado com base em sua instância e endereços básicos especificados.

(Herdado de ServiceHost)
InitializeDescription(Type, UriSchemeKeyedCollection)

Inicializa uma descrição do serviço hospedado com base em seu tipo e endereços básicos especificados.

(Herdado de ServiceHost)
InitializeDescription(UriSchemeKeyedCollection)

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

(Herdado de ServiceHostBase)
InitializeRuntime()

Inicializa o runtime para o host de serviço.

(Herdado de ServiceHostBase)
LoadConfigurationSection(ServiceElement)

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

(Herdado de ServiceHostBase)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnAbort()

Anula o serviço.

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

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

(Herdado de ServiceHostBase)
OnClosed()

Descarta serviços descartáveis sendo hospedados quando o host de serviço é fechado.

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

(Herdado de ServiceHostBase)
OnEndOpen(IAsyncResult)

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

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

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

(Herdado de ServiceHostBase)
OnOpening()

Chamado quando a instância de WebServiceHost é aberta.

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.

(Herdado de ServiceHostBase)
SetEndpointAddress(ServiceEndpoint, String)

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

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

(Herdado de ServiceHostBase)

Implantações explícitas de interface

IDisposable.Dispose()

Fecha o host de serviço.

(Herdado de ServiceHostBase)

Aplica-se a