Compartilhar via


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

O Host de Serviço (WcfSvcHost.exe) do WCF (Windows Communication Foundation) permite que você inicie o F5 (depurador do Visual Studio) 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 um cliente próprio 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 WCF, carrega a configuração do projeto e cria uma instância de 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ço WCF) sem escrever nenhum 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. Caso deseje usar um serviço WCF na Confiança Parcial, não use o modelo do Projeto de Biblioteca de Serviço WCF no Visual Studio para criar seu serviço. Em vez disso, crie um 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ê precisa 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 hospedar serviços. Depois que o desenvolvimento dos seus serviços for concluído, você deverá migrar os serviços do Host de Serviço do WCF para o IIS.

Cenários de uso do Host de Serviço do WCF no Visual Studio

A tabela a seguir lista todos os parâmetros na caixa de diálogo Argumentos de linha de comando, que você pode encontrar clicando com o botão direito do mouse no seu projeto no Gerenciador de Soluções no Visual Studio, selecionando Propriedades e 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 forem hospedados. Isso iniciará o Cliente de Teste do WCF após a hospedagem.
/clientArg Especifique uma cadeia de caracteres como um argumento transmitido para o aplicativo cliente personalizado.
/? Exibe o texto da Ajuda.

Como usar o Cliente de Teste do WCF

Depois que você criar um 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 no seu projeto. Em seguida, o Cliente de Teste do WCF será aberto e exibirá uma lista de pontos de extremidade de serviço definidos no arquivo de configuração. Na janela principal, você poderá testar os parâmetros e invocar o 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 a guia Depurar. Clique em Iniciar Projeto e verifique se o texto a seguir é exibido na caixa de diálogo Argumentos de linha de comando.

/client:WcfTestClient.exe

Como usar 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 a guia Depurar. Clique em Iniciar Projeto e edite o parâmetro /client na caixa de diálogo Argumentos de linha de comando para apontá-lo para o 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 parâmetro /clientArg: para especificar uma cadeia de caracteres como argumento que é transmitido 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 da Biblioteca de Serviços de Sindicalização, use os argumentos de linha de comando a seguir.

/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 a guia Depurar. Clique em Iniciar Projeto e mantenha a caixa de diálogo Argumentos de linha de comando em branco.

Como usar 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 a guia Depurar. Clique em Iniciar Programa Externo e insira o caminho completo do host personalizado. Use também a caixa de diálogo Argumentos de linha de comando para especificar os argumentos a serem transmitidos para o host.

Interface do usuário do Host de Serviço do WCF

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

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

A janela principal do Host de Serviço do WCF contém dois menus:

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

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

  • A primeira área é Serviço. Ela 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. Ela 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á ver 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.

Como usar o Host de Serviço sem privilégio de Administrador

Para permitir que os 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.

Modifique 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 o netsh.exe.

netsh http add urlacl url=http://+:8001/MyService user=<domain>\<user>

Para obter mais informações sobre o netsh.exe, confira "Como usar a ferramenta Netsh.exe e as opções da linha de comando".

Confira também