Partilhar via


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".

Consulte também