Host de serviço WCF (WcfSvcHost.exe)
O Windows Communication Foundation (WCF) Service Host (WcfSvcHost.exe) permite que você inicie o depurador do Visual Studio (F5) para hospedar e testar automaticamente um serviço que você implementou. Em seguida, você pode testar o serviço usando WCF Test Client (WcfTestClient.exe), ou seu próprio cliente, para localizar e corrigir quaisquer erros potenciais.
Host de serviço WCF
WCF Service Host enumera os serviços em um projeto de serviço WCF, carrega a configuração do projeto e instancia um host para cada serviço que ele encontra. A ferramenta é integrada ao Visual Studio por meio do modelo de serviço WCF e é invocada quando você começa a depurar seu projeto.
Usando o WCF Service Host, você pode hospedar um serviço WCF (em um projeto de biblioteca de serviço WCF) sem escrever código extra ou se comprometer com um host específico durante o desenvolvimento.
Nota
WCF Service Host não suporta confiança parcial. Se você quiser usar um serviço WCF em confiança parcial, não use o modelo de projeto WCF Service Library no Visual Studio para criar seu serviço. Em vez disso, crie um Novo Site no Visual Studio escolhendo o modelo Site do Serviço WCF, que pode hospedar o serviço em um Servidor Web no qual a Confiança Parcial do WCF é suportada.
Tipos de projeto hospedados pelo WCF Service Host
WCF Service Host pode hospedar os seguintes tipos de projeto de biblioteca de serviço WCF: WCF Service Library, Sequential Workflow Service Library, State Machine Workflow Service Library e Syndication Service Library. O WCF Service Host também pode hospedar os serviços que podem ser adicionados a um projeto de biblioteca de serviços usando a funcionalidade Adicionar Item . Isso inclui Serviço WCF, Serviço de Máquina de Estado WF, Serviço Sequencial WF, Serviço de Máquina de Estado WF XAML e Serviço Sequencial WF XAML.
Você deve notar, no entanto, que a ferramenta não irá ajudá-lo a configurar um host. Para esta tarefa, você deve editar manualmente o arquivo App.config. A ferramenta também não valida arquivos de configuração definidos pelo usuário.
Atenção
Você não deve usar o WCF Service Host para hospedar serviços em um ambiente de produção, pois ele não foi projetado para essa finalidade. WCF Service Host não suporta os requisitos de confiabilidade, segurança e capacidade de gerenciamento de tal ambiente. Em vez disso, use o IIS, pois ele fornece confiabilidade superior e recursos de monitoramento, e é a solução preferida para serviços de hospedagem. Quando o desenvolvimento de seus serviços estiver concluído, você deverá migrar os serviços do WCF Service Host para o IIS.
Cenários para usar o host de serviço WCF dentro do Visual Studio
A tabela a seguir lista todos os parâmetros na caixa de diálogo Argumentos da linha de comando, que podem ser encontrados clicando com o botão direito do mouse em seu projeto no Gerenciador de Soluções no Visual Studio, selecionando Propriedades, selecionando a guia Depurar e clicando em Iniciar Projeto. Esses parâmetros são úteis na configuração do WCF Service Host.
Parâmetro | Significado |
---|---|
/client |
Um parâmetro opcional que especifica o caminho para um executável a ser executado após a hospedagem dos serviços. Isso inicia o WCF Test Client após a hospedagem. |
/clientArg |
Especifique uma cadeia de caracteres como um argumento que é passado para o aplicativo cliente personalizado. |
/? |
Exibe o texto de ajuda. |
Usando o cliente de teste WCF
Depois de criar um novo projeto de serviço WCF e pressione F5 para iniciar o depurador, WCF Service Host começa a hospedar todos os serviços que encontra em seu projeto. O WCF Test Client abre automaticamente e exibe uma lista de pontos de extremidade de serviço definidos no arquivo de configuração. Na janela principal, você pode testar os parâmetros e invocar seu serviço.
Para certificar-se de que WCF Test Client é usado, clique com o botão direito do mouse em seu projeto no Solutions Explorer no Visual Studio, selecione Propriedades e, em seguida, selecione a guia Depurar. Clique em Iniciar projeto e verifique se o seguinte aparece na caixa de diálogo Argumentos da linha de comando.
/client:WcfTestClient.exe
Usando um cliente personalizado
Para usar um cliente personalizado, clique com o botão direito do mouse em seu projeto no Gerenciador de Soluções no Visual Studio, selecione Propriedades e selecione a guia Depurar. Clique em Iniciar projeto e edite o /client
parâmetro na caixa de diálogo Argumentos da linha de comando para apontar para o cliente personalizado, conforme indicado no exemplo a seguir.
/client:"path/CustomClient.exe"
Quando você pressiona F5 para iniciar o serviço novamente, o WCF Service Host inicia automaticamente seu cliente personalizado quando você inicia o depurador.
Você também pode usar o /clientArg:
parâmetro para especificar uma cadeia de caracteres como um argumento que é passado para o aplicativo cliente personalizado, conforme indicado no exemplo a seguir.
/client:"path/CustomClient.exe" /clientArg:"arguments that are passed to Client"
Por exemplo, se você estiver usando o modelo Biblioteca de Serviço de Distribuição, poderá usar os seguintes argumentos de linha de comando,
/client:iexplore.exe /clientArgs:http://localhost:8731/Design_Time_Addresses/Feed1/
Especificando nenhum cliente
Para especificar que nenhum cliente será usado após a hospedagem do serviço WCF, clique com o botão direito do mouse em seu projeto no Gerenciador de Soluções no Visual Studio, selecione Propriedades e selecione a guia Depurar. Clique em Iniciar projeto e deixe a caixa de diálogo Argumentos da linha de comando em branco.
Usando um host personalizado
Para usar um host personalizado, clique com o botão direito do mouse em seu projeto no Gerenciador de Soluções no Visual Studio, selecione Propriedades e selecione a guia Depurar. Clique em Iniciar Programa Externo e insira o caminho completo para o host personalizado. Você também pode usar a caixa de diálogo Argumentos da linha de comando para especificar argumentos a serem passados para o host.
Interface do usuário do host de serviço WCF
Quando você invoca inicialmente o WCF Service Host (pressionando F5 dentro do Visual Studio), a janela WCF Service Host é aberta automaticamente. Quando o WCF Service Host está em execução, o ícone do programa aparece na área de notificação. Clique duas vezes no ícone para abrir a janela WCF Service Host
Quando ocorrerem erros durante a hospedagem do serviço, a caixa de diálogo WCF Service Host será aberta para exibir informações relevantes.
A janela principal do WCF Service Host contém dois menus:
Arquivo: contém os comandos Fechar e Sair . Quando você clica em Fechar, a caixa de diálogo WCF Service Host é fechada, mas os serviços continuam a ser hospedados. Quando você clica em Sair, o host de serviço WCF também é desligado. Isso também interrompe todos os serviços hospedados.
Ajuda: Contém o comando Sobre que contém informações de versão. Ele também contém o comando Help que pode abrir um arquivo de ajuda.
A janela principal do WCF Service Host contém duas áreas:
A primeira área é o Serviço. Ele contém uma lista que exibe informações básicas de todos os serviços. As informações incluem:
Serviço: Lista todos os serviços.
Status: Lista o status do serviço. Os valores válidos são "Started", "Stopped" e "Error".
Endereço de metadados: Exibe o endereço de metadados dos serviços.
A segunda área é a Informação Adicional. Ele exibe uma explicação detalhada do status do serviço quando a linha de serviço específica é selecionada na área Serviço . Se o status for Erro, você poderá visualizar a mensagem de erro completa na tela.
Parando o host de serviço WCF
Você pode desligar o host de serviço WCF das seguintes quatro maneiras:
Pare a sessão de depuração no Visual Studio.
Selecione Sair no menu Arquivo na janela WCF Service Host .
Selecione Sair do menu de contexto do ícone da bandeja do host de serviço WCF na área de notificação do sistema.
Saia do cliente de teste WCF se ele estiver sendo usado.
Usando o host de serviço sem privilégio de administrador
Para permitir que usuários sem privilégio de administrador desenvolvam serviços WCF, uma ACL (Lista de Controle de Acesso) é criada para o namespace "http://+:8731/Design_Time_Addresses" durante a instalação do Visual Studio. A ACL é definida como (UI), que inclui todos os usuários interativos conectados à máquina. Os administradores podem adicionar ou remover usuários dessa ACL ou abrir portas adicionais. Essa ACL permite que os usuários usem o WCF Service Auto Host (wcfSvcHost.exe) sem conceder-lhes privilégios de administrador.
Você pode modificar o acesso usando a ferramenta netsh.exe no Windows Vista sob a conta de administrador elevada. Segue-se um exemplo da utilização de netsh.exe.
netsh http add urlacl url=http://+:8001/MyService user=<domain>\<user>
Para obter mais informações sobre netsh.exe, consulte "Como usar a ferramenta Netsh.exe e opções de linha de comando".