Criando os exemplos do Windows Communication Foundation
Os exemplos do Windows Communication Foundation (WCF) podem ser criados usando o IDE do Visual Studio ou o comando msbuild da linha de comando. Ambos os procedimentos são descritos neste artigo.
Nota
Antes de criar ou executar qualquer um dos exemplos do WCF, verifique se você executou o procedimento de instalação única para os exemplos do Windows Communication Foundation.
Para criar o exemplo usando um prompt de comando
Abra o Prompt de Comando do Desenvolvedor para Visual Studio e navegue até o subdiretório específico do idioma no local do diretório onde você instalou o exemplo.
Digite
msbuild
na linha de comando. Os arquivos de programa cliente são criados para client\bin e os arquivos de programa de serviço são criados para service\bin. Se o serviço for hospedado pelo IIS (Serviços de Informações da Internet), os arquivos de programa de serviço também serão copiados para o diretório servicemodelsamples e seu subdiretório \bin .
Nota
Você deve definir as ACLs em %systemdrive%\inetpub\wwwroot para conceder permissões de modificação à conta na qual você está executando. Caso contrário, alguns eventos pós-compilação falham. Como alternativa, você pode deixar as ACLs como estão e executar o prompt de comando do SDK como administrador.
Para criar o exemplo usando o Visual Studio
No menu Arquivo no Visual Studio, selecione Abrir>projeto/solução. Navegue até o subdiretório específico do idioma no diretório no qual você instalou o exemplo e clique duas vezes no ícone do arquivo .sln para abrir a solução no Visual Studio.
No menu Compilar, selecione Reconstruir Solução.
Os arquivos de programa cliente são criados para client\bin e os arquivos de programa de serviço são criados para service\bin. Se o serviço estiver hospedado no IIS, os arquivos de programa de serviço também serão copiados para o diretório servicemodelsamples e seu subdiretório \bin .
Nota
Você deve definir as ACLs em %systemdrive%\inetpub\wwwroot para conceder permissões de modificação à conta na qual você está executando. Caso contrário, alguns eventos pós-compilação falham. Como alternativa, você pode deixar as ACLs como estão e executar o prompt de comando do SDK ou o Visual Studio como administrador. Algumas ações do Visual Studio (como anexar um depurador ao processo de trabalho ASP.NET) também exigem privilégios administrativos.
Configurar arquivos em lote e scripts
Setup.exe e Cleanup.exe arquivos em lote e scripts devem ser executados a partir do Prompt de Comando do Desenvolvedor para Visual Studio. Vários arquivos de configuração e limpeza executam tarefas que exigem privilégios administrativos e devem ser iniciados com privilégios de administrador.
Informações de segurança importantes sobre pontos de extremidade de metadados
Para evitar a divulgação não intencional de metadados de serviço potencialmente confidenciais, a configuração padrão para serviços do Windows Communication Foundation (WCF) desabilita a publicação de metadados. Esse comportamento é seguro por padrão, mas também significa que você não pode usar uma ferramenta de importação de metadados (como Svcutil.exe) para gerar o código do cliente necessário para chamar o serviço, a menos que o comportamento de publicação de metadados do serviço esteja explicitamente habilitado na configuração. Para facilitar a experimentação com as amostras, quase todas as amostras expõem um ponto de extremidade de publicação de metadados não seguro. Esses pontos de extremidade estão potencialmente disponíveis para consumidores anônimos não autenticados e deve-se tomar cuidado antes de implantar esses pontos finais para garantir que a divulgação pública dos metadados de um serviço seja apropriada. Para obter mais informações sobre metadados de serviço de publicação, consulte o Exemplo de comportamento de publicação de metadados. Consulte o Exemplo de ponto de extremidade de metadados seguros personalizados para obter um exemplo de proteção de um ponto de extremidade de metadados.
Processamento de Exceções
De um modo geral, esses exemplos não incluem o tratamento de exceções para manter o código focado no assunto do exemplo. Para obter mais informações sobre o tratamento de exceções, consulte o Exemplo de exceções esperadas.
Regenerando clientes e configuração com Svcutil
Você pode usar a ServiceModel Metadata Utility Tool (Svcutil.exe) para regenerar o código e a configuração do cliente para a maioria dos exemplos. Alguns exemplos requerem configuração editada manualmente. Por exemplo, se você usar Svcutil.exe para regenerar a configuração de um exemplo que usa credenciais de certificado de cliente, deverá especificar manualmente as credenciais configuradas anteriormente. Alguns exemplos usam opções de Svcutil.exe específicas para afetar o código gerado, essas opções são especificadas nos tópicos de exemplo específicos.
Para regenerar o cliente e os arquivos de configuração
Abra um prompt de comando do SDK e navegue até o subdiretório específico do idioma no local do diretório onde você instalou o exemplo.
Se o serviço for do tipo hospedado na Web, use o seguinte comando.
svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /out:generatedClient.cs
Se o serviço for auto-hospedado, digite o seguinte comando.
svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /out:generatedClient.cs
Substitua
http://localhost:8000/ServiceModelSamples/service.svc/mex
pelo endereço do ponto de extremidade mex do serviço auto-hospedado.Para gerar o cliente em um tipo Visual Basic, use o seguinte comando.
svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
Se o serviço for do tipo auto-hospedado, use o seguinte comando.
svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
Nota
Para ignorar a geração da configuração do cliente, adicione a opção /noConfig .