Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Há três maneiras de começar a depurar um serviço WCF:
Você está depurando um processo de cliente que chama um serviço. O debugger avança para o serviço. O serviço não precisa estar na mesma solução que seu aplicativo cliente.
Você está depurando um processo de cliente que faz uma solicitação para um serviço. O serviço deve fazer parte da sua solução.
Empregue Conectar ao Processo para ligar a um serviço que está em execução no momento. A depuração começa dentro do serviço.
Este tópico descreve as limitações desses cenários.
Limitações ao entrar em um serviço
Para aceder a um serviço a partir de uma aplicação cliente que está a depurar, devem ser cumpridas as seguintes condições:
O cliente deve chamar o serviço usando um objeto de cliente síncrono.
A operação do contrato não pode ser unidirecional.
Se o servidor for assíncrono, você não poderá exibir a pilha de chamadas completa enquanto estiver executando código dentro do serviço.
A depuração deve ser habilitada com o seguinte código no arquivo app.config ou Web.config:
<system.web> <compilation debug="true" /> </system.web>Este código só tem de ser adicionado uma vez. Você pode adicionar esse código editando o arquivo .config ou anexando ao serviço usando Anexar ao processo. Quando você usa Anexar ao processo em um serviço, o código de depuração é adicionado automaticamente ao arquivo .config. Depois disso, você pode depurar e entrar no serviço sem ter que editar o arquivo .config.
Limitações à desvinculação de um serviço
Ao sair de um serviço e regressar para o cliente, enfrentam-se as mesmas limitações descritas ao entrar num serviço. Além disso, o depurador deve estar ligado ao cliente. Se estiveres depurando um cliente e entrares num serviço, o depurador permanecerá ligado ao serviço. Isso é verdadeiro se você iniciou o cliente usando Iniciar Depuração ou anexado ao cliente usando Anexar ao Processo. Se começaste a depurar ligando ao serviço, o depurador ainda não está ligado ao cliente. Nesse caso, se você tiver que sair do serviço e voltar para o cliente, você deve primeiro usar Anexar ao processo para anexar ao cliente manualmente.
Limitações da Ligação Automática a um Serviço
A anexação automática a um serviço tem as seguintes limitações:
O serviço deve fazer parte da solução do Visual Studio que está a depurar.
O serviço deve ser implementado numa plataforma. Ele pode ser parte de um projeto de Web Site (Sistema de Arquivos e HTTP), projeto de Aplicativo Web (Sistema de Arquivos e HTTP) ou projeto WCF Service Library. Os projetos da Biblioteca de Serviços do WCF podem ser Bibliotecas de Serviço ou Bibliotecas de Serviço de Fluxo de Trabalho.
O serviço deve ser invocado a partir de um cliente WCF.
A depuração deve ser habilitada com o seguinte código no arquivo app.config ou Web.config:
<system.web> <compilation debug="true" /> <system.web>
Auto-Hospedagem
Um serviço auto-hospedado é um serviço WCF que não é executado dentro do IIS, do Host de Serviço WCF ou do ASP.NET Development Server. Para obter informações sobre como depurar um serviço auto-hospedado, consulte Como depurar um serviço WCF Self-Hosted.
Se você vir a mensagem de erro, "Não é possível entrar automaticamente no servidor.", repare a instalação do Visual Studio para tentar resolver o problema. Isso pode acontecer se você instalar o Visual Studio antes de instalá ASP.NET.