WebServiceHost 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.
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) |