Compartilhar via


Self-Host

A amostra de SelfHost demonstra como implementar um serviço auto-hospedado em um aplicativo de console. Esta amostra é baseada na Introdução. O arquivo de configuração de serviço foi renomeado de Web.config para App.config e modificado para configurar um endereço básico, que o host usa. O código-fonte do serviço foi modificado para implementar uma função Main estática que cria e abre um host de serviço que fornece o endereço básico configurado. A implementação do serviço foi modificada para gravar a saída ao console para cada operação. O cliente não foi modificado, exceto por configurar o endereço de ponto de extremidade correto do serviço.

Observação

O procedimento de instalação e as instruções de compilação dessa amostra estão no final deste tópico.

A amostra implementa uma função principal estática para criar um ServiceHost para o tipo CalculatorService específico, conforme mostrado no código de exemplo a seguir.

// Host the service within this EXE console application.
public static void Main()
{
    // Create a ServiceHost for the CalculatorService type.
    using (ServiceHost serviceHost =
           new ServiceHost(typeof(CalculatorService)))
    {
        // Open the ServiceHost to create listeners
        // and 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.WriteLine();
        Console.ReadLine();
    }
}

Quando um serviço é hospedado nos Serviços de Informações da Internet (IIS) ou no Serviço de Ativação de Processo do Windows (WAS), o endereço básico do serviço é fornecido pelo ambiente de hospedagem. No caso auto-hospedado, você deve especificar o endereço básico por conta própria. Isso é feito usando o elemento add, filho de <baseAddresses>, filho do <host>, filho do <serviço>, conforme demonstrado na configuração de amostra a seguir.

<service
    name="Microsoft.ServiceModel.Samples.CalculatorService"
    behaviorConfiguration="CalculatorServiceBehavior">
  <host>
    <baseAddresses>
      <add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
    </baseAddresses>
  </host>
  ...
</service>

Quando você executa a amostra, as solicitações de operação e as respostas são exibidas no serviço e na janela do console do cliente. Pressione ENTER em cada janela do console para desligar o serviço e o cliente.

Para configurar, compilar, e executar o exemplo

  1. Verifique se você executou o Procedimento de instalação única para os exemplos do Windows Communication Foundation.

  2. Para compilar a edição .NET do C# ou do Visual Basic da solução, siga as instruções contidas em Como Compilar as Amostras do Windows Communication Foundation.

  3. Para executar o exemplo em uma configuração de computador único ou em vários, siga as instruções em Como executar os exemplos do Windows Communication Foundation.

Confira também