Quando desejo debugar alguma WebPart, Event Receiver ou qualquer outro recurso que seja executado em um IIS Application Pool Process e implantado em um site SharePoint, faço os seguintes passos, sem eles geralmente o breakpoint fica inacessível
Assegure que a URL do Site SharePoint está informada corretamente, nas propriedades do Projeto, campo Site URL:
Assegure também, que a configuração de compilação do seu projeto está marcado como Debug e não Release.
Recarregue qualquer página do Site SharePoint a fim de que ele "aqueça" o servidor e cacheie tudo que for necessário. No meu exemplo, recarreguei a página que minha WebPart está.
Insira um breakpoint onde você deseja fazer o debug.
Abra o menu DEBUG na barra superior do Visual Studio e selecione Attach to Process.
Uma tela com diversos processos do Windows será apresentada. Marque a opção Show processes from all users.
Normalmente, o processo w3wp correto é o primeiro por ter sido o último acessado por algum usuário e você acabou de acessar uma página qualquer do seu servidor, porém, para confirmarmos esse dado utilize estes comandos abaixo diretamente no Prompt de Comando (cmd.exe) do seu servidor, rodando-o como Administrador.
cd C:\Windows\System32\inetsrv
Appcmd list wp
pause
Com este comando, conseguimos descobrir qual o w3wp correto. Assim, selecione o processo do Pool do IIS que contém o seu site SharePoint e clique em Attach. Aguarde até que o breakpoint fique uma bolinha vermelha cheia e acesse a página que contém sua WebPart, ou recarregue-a (caso já esteja nela). Com isto, o breakpoint deve ser "atingido" pelo Visual Studio e você pode debugar tranquilamente.
Qualquer dúvida ou problema neste pequeno tutorial, não hesite em comentar abaixo. Obrigado.
This comment has been removed by the author.
ReplyDeleteTutorial top para quem está iniciando, ainda mais com o truque de selecionar a w3wp correta. Isso faz com que a demora diminua na hora de debugar e que o debug não se perca, que é o que muitas vezes ocorre quando selecionamos todos os processos.
ReplyDelete