Limitações da depuração WCF
Há três modos de começar a depuração de um serviço WCF:
Você está depurando um processo de cliente que chama um serviço. O depurador entra no serviço. O serviço não tem que estar na mesma solução que o aplicativo cliente.
Você está depurando um processo de cliente que faz a solicitação para um serviço. O serviço deve fazer parte de sua solução.
Você usa Anexar ao Processo para anexar a um serviço que está em execução no momento. A depuração começa dentro do serviço.
Este tópico descreve limitações nesses cenários.
Limitações para entrar em um serviço
Para entrar em um serviço de aplicativos cliente que você está depurando, as seguintes condições devem ser atendidas:
O cliente deve chamar o serviço usando um objeto do 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 o código no serviço.
A depuração deve estar habilitada com o seguinte código no arquivo app.config ou no Web.config:
<system.web> <compilation debug="true" /> </system.web>
Esse código só precisa 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 precisar editar o arquivo .config.
Limitações para sair de um serviço
Sair de um serviço e voltar para o cliente tem as mesmas restrições descritas para entrar em um serviço. Além disso, o depurador deve ser anexado ao cliente. Se você estiver depurando um cliente e entrando em um serviço, o depurador permanecerá anexado ao serviço. Isso será verdadeiro se você tiver iniciado o cliente usando Iniciar Depuração ou anexado ao cliente usando Anexar ao Processo. Se você tiver começado a depurar anexando ao serviço, o depurador ainda não estará anexado ao cliente. Nesse caso, se você tiver que sair do serviço e voltar ao cliente, primeiro deverá usar Anexar ao Processo para anexar manualmente ao cliente.
Limitações de anexar automaticamente a um serviço
Anexar automaticamente a um serviço tem as seguintes limitações:
O serviço deve fazer parte da solução do Visual Studio que você está depurando.
O serviço deve ser hospedado. Ele pode fazer parte de um projeto do site (Sistema de Arquivos e HTTP), projeto de aplicativo Web (Sistema de Arquivos e HTTP) ou projeto da biblioteca de serviço WCF. Os projetos da biblioteca de serviço WCF podem ser bibliotecas de serviço ou bibliotecas de serviço de fluxo de trabalho.
O serviço deve ser chamado de um cliente WCF.
A depuração deve estar habilitada com o seguinte código no arquivo app.config ou no 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 auto-hospedado.
Se você vir a mensagem de erro "Não é possível intervir no servidor automaticamente", repare a instalação do Visual Studio para tentar resolver o problema. Isso pode acontecer se você instalar o Visual Studio antes de instalar o ASP.NET.