SharePoint Troubleshooting Series [Part 5]

SharePoint Troubleshooting Series [Part 5]

2017-01-18 Off Por gambin

Olá Pessoal!

Gostaria de compartilhar com vocês neste post uma dica muito bacana para troubleshooting de aplicações customizadas em ambientes SharePoint através do remote debugging!

– Ahh cara, isso não funciona! Isso é papo de quem nunca debugou nada no VS..

Se eu tivesse contado quantas vezes ouvi isso (ou algo parecido), vocês certamente não iriam acreditar. Mas bem, aqui a gente mata a cobra e o resto voces já sabem 😀

Primeiramente – qual a principal vantagem do remote debugging? A extinção desse meme:

WOMM

Sim! É possível debugar código sem a necessidade de uma instalação local e full do Visual Studio nos servidores de produção/ homologação, através da instalação do Visual Studio Remote Debuging nos servidores desejados!

Para que isso aconteça primeiramente precisamos nos atentar nos seguintes pré-requisitos (entre eles um bem importante):

 

Além dos requisitos básicos citados acima, mas também por questões de segurança e suportabilidade de protocolos via internet, não é possível “debugar” usando o VS Remote Debugging pela sua conexão de intenet, por mais que você tenha um servidor ou site “publicado” na web.

Em todo caso, uma VPN que irá colocá-lo na mesma rede local do servidor desejado poderá facilmente resolver o problema!

Temos também abaixo listado os principais links para realizar a instalação, configuração e utilização do remote debugging:

  1. Set Up the Remote Tools on the Device
  2. Attach to Running Processes with the Visual Studio Debugger
  3. How to: Debug SharePoint Applications

Nesta ordem basicamente iremos:

  1. Instalar e configurar (são duas etapas separadas) a execução e serviço do remote debugging (este último é opcional). Não se esqueça de também instalar os updates do VS Remote Debugging (atual no Update 4).
  2. Para quem já faz o debug de aplicações SharePoint usando o Visual Studio, o processo é basicamente o mesmo, a única diferença é que ao invés de fazer o attach “local” será feito o attach em uma thread remota (campo Qualifier), através do listener do VS Remote Debugger:
  3. Aí já não tem segredo – você irá usar ou o W3WP para debugar receivers, webparts e componentes relacionados ou o OWSTIMER para o debug de timerjobs.

 

Lembrando que para o remote debugging, temos ainda as mesmas características de um debug local, que é por exemplo a versão do código (mesma versão), e para isso podemos falar um pouco de branches (em um futuro post), e como eles poderão auxiliar nossa tarefa de debugging (e por que não, remote debugging?).

Aviso importante: nunca se esqueça que, durante um processo de debugging você fica como “owner” do processo em execução, portanto qualquer debug que irá envolver por exemplo um dos processos W3WP poderá causar total indisponibilidade dos sites que compartilham o mesmo application pool do processo. Take care!!

Acho que é isso pessoal, espero que tenha ajudado e até o próximo post 😉

Grande abraço!