Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O exemplo do WindowsService demonstra um serviço WCF (Windows Communication Foundation) hospedado em um serviço gerenciado do Windows. Os Serviços do Windows são controlados usando o applet dos Serviços no Painel de Controle e podem ser configurados para iniciar automaticamente após uma reinicialização do sistema. O exemplo consiste em um programa cliente e um programa do Serviço Windows. O serviço é implementado como um programa .exe e contém seu próprio código de hospedagem. Em outros ambientes de hospedagem, como o WAS (Serviços de Ativação de Processo do Windows) ou o IIS (Serviços de Informações da Internet), não é necessário escrever código de hospedagem.
Observação
O procedimento de configuração e as instruções de build para este exemplo estão localizados no final deste tópico.
Depois de criar esse serviço, ele deve ser instalado com o utilitário Installutil.exe como qualquer outro Serviço Windows. Se você quiser fazer alterações no serviço, primeiro desinstale-o com installutil /u
. Os arquivos Setup.bat e Cleanup.bat incluídos neste exemplo são os comandos para instalar e iniciar o Serviço Windows e desligar e desinstalar o Serviço Windows. O serviço WCF só poderá responder aos clientes se o Serviço Windows estiver em execução. Se você parar o Serviço Windows usando o applet serviços do Painel de Controle e executar o cliente, ocorrerá uma EndpointNotFoundException exceção quando um cliente tenta acessar o serviço. Se você reiniciar o Serviço Windows e executar novamente o cliente, a comunicação será bem-sucedida.
O código de serviço inclui uma classe de instalador, uma classe de implementação de serviço WCF que implementa o contrato ICalculator e uma classe do Serviço Windows que atua como o host em tempo de execução. A classe do instalador, da qual herda Installer, permite que o programa seja instalado como um serviço NT pela ferramenta Installutil.exe. A classe de implementação de serviço é WcfCalculatorService
um serviço WCF que implementa um contrato de serviço básico. Esse serviço WCF é hospedado dentro de uma classe do Serviço Windows chamada WindowsCalculatorService
. Para se qualificar como um Serviço Windows, a classe herda de ServiceBase e implementa os métodos OnStart(String[]) e OnStop(). Em OnStart(String[]), um objeto ServiceHost é criado para o tipo WcfCalculatorService
e é aberto. No OnStop(), o ServiceHost é fechado ao chamar o método Close(TimeSpan) do objeto ServiceHost. O endereço base do host é configurado usando o <elemento> de adição, que é filho de <baseAddresses>, que é filho de <elemento> host, que é filho do elemento <serviço>.
O ponto de extremidade definido usa o endereço básico e um <wsHttpBinding>. O exemplo a seguir mostra a configuração do endereço base, bem como o endpoint que expõe o serviço de calculadora.
<services>
<service name="Microsoft.ServiceModel.Samples.WcfCalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
<!-- This endpoint is exposed at the base address provided by host: http://localhost:8000/ServiceModelSamples/service. -->
<endpoint address=""
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
...
</service>
</services>
Quando você executa o exemplo, as solicitações e respostas da operação são exibidas nas janelas do serviço e 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
Verifique se você executou o Procedimento de instalação avulsa dos exemplos do Windows Communication Foundation.
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.
Depois que a solução for criada, execute Setup.bat de um prompt de comando elevado do Visual Studio para instalar o serviço Windows usando a ferramenta Installutil.exe. O serviço deve aparecer nos Serviços.
Para executar o exemplo em uma configuração de computador único ou cruzado, siga as instruções em Executar os exemplos do Windows Communication Foundation.