Compilando os exemplos do Windows Communication Foundation
Os exemplos do WCF (Windows Communication Foundation) podem ser compilados por meio do IDE do Visual Studio ou do comando msbuild na linha de comando. Os dois procedimentos são descritos neste artigo.
Observação
Antes de compilar ou executar um dos exemplos do WCF, verifique se você executou o Procedimento de instalação única para os exemplos do Windows Communication Foundation.
Para compilar o exemplo usando o prompt de comando
Abra o Prompt de Comando do Desenvolvedor para Visual Studio e procure o subdiretório específico da linguagem no local do diretório em que você instalou o exemplo.
Digite
msbuild
na linha de comando. Os arquivos do programa do cliente são compilados em client\bin, e os arquivos do programa de serviço são compilados em service\bin. Se o serviço for hospedado pelo IIS (Serviços de Informações da Internet), os arquivos do programa de serviço também serão copiados para o diretório servicemodelsamples e o subdiretório \bin.
Observação
Você precisa definir as ACLs em %systemdrive%\inetpub\wwwroot para conceder permissões de modificação para a conta na qual está sendo feita a execução. Caso contrário, alguns eventos pós-build falharão. Como alternativa, você pode manter as ACLs como estão e executar o prompt de comando do SDK como administrador.
Para criar o exemplo usando Visual Studio
No menu Arquivo do Visual Studio, selecione Abrir>Projeto/Solução. Procure o subdiretório específico da linguagem no diretório no qual você instalou o exemplo e clique duas vezes no ícone de arquivo .sln para abrir a solução no Visual Studio.
No menu Compilar, selecione Recompilar Solução.
Os arquivos do programa do cliente são compilados em client\bin, e os arquivos do programa de serviço são compilados em service\bin. Se o serviço for hospedado no IIS, os arquivos do programa de serviço também serão copiados para o diretório servicemodelsamples e o subdiretório \bin.
Observação
Você precisa definir as ACLs em %systemdrive%\inetpub\wwwroot para conceder permissões de modificação para a conta na qual está sendo feita a execução. Caso contrário, alguns eventos pós-build falharão. 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 do ASP.NET) também exigem privilégios administrativos.
Configurar arquivos e scripts em lote
Os arquivos e os scripts em lote do Setup.exe e do Cleanup.exe devem ser executados no 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 iniciadas com privilégios de administrador.
Informações importantes de segurança 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 os serviços WCF (Windows Communication Foundation) desabilita a publicação de metadados. Esse comportamento é seguro por padrão, mas também significa que não é possível usar uma ferramenta de importação de metadados (como o Svcutil.exe) para gerar o código 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 os exemplos, quase todos os exemplos expõem um ponto de extremidade de publicação de metadados não protegido. Esses pontos de extremidade estão potencialmente disponíveis para os consumidores anônimos não autenticados, e é preciso tomar cuidado antes da implantação desses pontos de extremidade, a fim de garantir que a divulgação pública dos metadados de um serviço seja apropriada. Para obter mais informações sobre como publicar metadados do serviço, confira o exemplo de Comportamento de publicação de metadados. Confira o exemplo de Ponto de extremidade de metadados seguros personalizados para ver um exemplo que protege um ponto de extremidade de metadados.
Tratamento de exceção
De modo geral, esses exemplos não incluem o tratamento de exceções para manter o código voltado para o assunto do exemplo. Para obter mais informações sobre o tratamento de exceções, confira o exemplo Exceções esperadas.
Como regenerar os clientes e a configuração com o Svcutil
Use a Ferramenta do Utilitário de Metadados do ServiceModel (Svcutil.exe) para regenerar o código e a configuração do cliente para a maioria dos exemplos. Alguns exemplos exigem uma configuração editada manualmente. Por exemplo, se você usar o Svcutil.exe para regenerar a configuração de um exemplo que usa credenciais de certificado do cliente, precisará especificar manualmente as credenciais já configuradas. Alguns exemplos usam opções específicas do Svcutil.exe para afetar o código gerado, e 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 procure o subdiretório específico da linguagem no local do diretório em que você instalou o exemplo.
Se o serviço for um tipo hospedado na Web, use o comando a seguir.
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 comando a seguir.
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 do Visual Basic, use o comando a seguir.
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 um tipo auto-hospedado, use o comando a seguir.
svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
Observação
Para ignorar a geração da configuração do cliente, adicione a opção /noConfig.