Compartilhar via


Host de Serviço do WCF (WcfSvcHost.exe)

O Host de Serviço (WcfSvcHost.exe) do Windows Communication Foundation (WCF) 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 o Cliente de Teste do WCF (WcfTestClient.exe) ou seu próprio cliente, para localizar e corrigir possíveis erros.

Host de Serviço do WCF

O Host de Serviço do WCF enumera os serviços em um projeto de serviço do WCF, carrega a configuração do projeto e instancia um host para cada serviço encontrado. A ferramenta é integrada ao Visual Studio por meio do modelo do Serviço WCF e é invocada quando você começa a depurar seu projeto.

Usando o Host de Serviço do WCF, você pode hospedar um serviço WCF (em um projeto de biblioteca de serviços do WCF) sem escrever código extra ou se comprometer com um host específico durante o desenvolvimento.

Observação

O Host de Serviço do WCF não dá suporte à Confiança Parcial. Se você quiser usar um Serviço WCF em Confiança Parcial, não use o modelo de Projeto da Biblioteca de Serviços do WCF no Visual Studio para criar seu serviço. Em vez disso, crie um Novo WebSite no Visual Studio escolhendo o modelo WebSite do Serviço WCF, que pode hospedar o serviço em um WebServer no qual há suporte para a Confiança Parcial do WCF.

Tipos de projeto hospedados pelo Host de Serviço do WCF

O Host de Serviço do WCF pode hospedar os seguintes tipos de projeto da biblioteca de serviço WCF: Biblioteca de Serviço WCF, Biblioteca de Serviços de Fluxo de Trabalho Sequencial, Biblioteca de Serviços de Fluxo de Trabalho da Máquina de Estado e Biblioteca de Serviços de Sindicalização. O Host de Serviço do WCF 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 o Serviço WCF, o Serviço de Máquina de Estado do WF, o Serviço Sequencial do WF, o Serviço de Máquina de Estado do WF XAML e o Serviço Sequencial do WF XAML.

No entanto, você deve observar que a ferramenta não ajudará você a configurar um host. Para essa tarefa, você deve editar manualmente o arquivo App.config. A ferramenta também não valida arquivos de configuração definidos pelo usuário.

Cuidado

Você não deve usar o Host de Serviço do WCF para hospedar serviços em um ambiente de produção, pois ele não foi projetado para essa finalidade. O Host de Serviço do WCF não dá suporte aos requisitos de confiabilidade, segurança e capacidade de gerenciamento desse ambiente. Em vez disso, use o IIS, pois ele fornece recursos de confiabilidade e monitoramento superiores e é a solução preferencial para serviços de hospedagem. Depois que o desenvolvimento de seus serviços for concluído, você deverá migrar os serviços do Host de Serviço do WCF para o IIS.

Cenários para usar o host do serviço WCF dentro do Visual Studio

A tabela a seguir lista todos os parâmetros na caixa de diálogo Argumentos de 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 e selecionando a guia Depurar e clicando em Iniciar Projeto. Esses parâmetros são úteis na configuração do Host de Serviço do WCF.

Parâmetro Significado
/client Um parâmetro opcional que especifica o caminho para um executável a ser executado depois que os serviços são hospedados. Isso inicia o cliente de teste do WCF após a hospedagem.
/clientArg Especifique uma cadeia de caracteres como um argumento passado para o aplicativo cliente personalizado.
/? Exibe o texto da ajuda.

Usando o cliente de teste do WCF

Depois de criar um novo projeto de serviço do WCF e pressionar F5 para iniciar o depurador, o Host de Serviço do WCF começará a hospedar todos os serviços encontrados em seu projeto. O Cliente de Teste do WCF é aberto 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 garantir que o cliente de teste do WCF seja usado, clique com o botão direito do mouse no projeto no Gerenciador de Soluções no Visual Studio, selecione Propriedades e selecione a guia Depurar . Clique em Iniciar Projeto e verifique se o seguinte aparece na caixa de diálogo Argumentos de linha de comando.

/client:WcfTestClient.exe

Usando um cliente personalizado

Para usar um cliente personalizado, clique com o botão direito do mouse no 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 de linha de comando para apontar para seu cliente personalizado, conforme indicado no exemplo a seguir.

/client:"path/CustomClient.exe"

Quando você pressionar F5 para iniciar o serviço novamente, o Host de Serviço do WCF iniciará automaticamente o cliente personalizado quando você iniciar 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 utilizando o modelo da Biblioteca de Serviços de Sindicação, poderá usar os seguintes argumentos na linha de comando,

/client:iexplore.exe /clientArgs:http://localhost:8731/Design_Time_Addresses/Feed1/

Como não especificar 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 no 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 de linha de comando em branco.

Usando um host personalizado

Para usar um host personalizado, clique com o botão direito do mouse no projeto no Gerenciador de Soluções no Visual Studio, selecione Propriedades e, em seguida, 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 de linha de comando para especificar argumentos a serem passados para o host.

Interface do usuário do host do serviço WCF

Quando você inicialmente invoca o Host de Serviço do WCF (pressionando F5 dentro do Visual Studio), a janela host do serviço WCF é aberta automaticamente. Quando o Host do Serviço WCF está em execução, o ícone do programa aparece na área de notificação. Clique duas vezes no ícone para abrir a janela host do serviço WCF

Quando ocorrerem erros durante a hospedagem do serviço, a caixa de diálogo Host do Serviço WCF será aberta para exibir informações relevantes.

A janela principal do host do serviço WCF inclui dois menus:

  • Arquivo: Contém os comandos Fechar e Sair . Quando você clica em Fechar, a caixa de diálogo Host do Serviço WCF é fechada, mas os serviços continuam hospedados. Quando você clica em Sair, o Host de Serviço do WCF é desligado também. 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 Ajuda que pode abrir um arquivo de ajuda.

A janela principal do Host do Serviço WCF contém duas áreas:

  • A primeira área é 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 "Iniciado", "Parado" e "Erro".

    • Endereço de metadados: exibe o endereço de metadados dos serviços.

  • A segunda área é Informações Adicionais. Ele exibe uma explicação detalhada do status do serviço quando a linha de serviço específica é selecionada na área de serviço . Se o status for Erro, você poderá exibir a mensagem de erro completa na tela.

Como parar o Host de Serviço do WCF

Você pode desligar o Host de Serviço do WCF das seguintes quatro maneiras:

  • Interrompa a sessão de depuração no Visual Studio.

  • Selecione Sair no menu Arquivo da janela Host de Serviço do WCF.

  • Selecione Sair no menu de contexto do ícone de bandeja do Host de Serviço do WCF na área de notificação do sistema.

  • Saia do cliente de teste do 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 (interface do usuário), que inclui todos os usuários interativos conectados ao computador. Os administradores podem adicionar ou remover usuários dessa ACL ou abrir portas adicionais. Essa ACL permite que os usuários usem o Host Automático do Serviço WCF (wcfSvcHost.exe) sem conceder a eles privilégios de administrador.

Você pode modificar o acesso usando a ferramenta netsh.exe no Windows Vista na conta de administrador com privilégios elevados. Veja a seguir um exemplo de como usar 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 os interruptores Command-Line".

Consulte também