
Depurando aplicações hospedada no Azure App Service com Visual Studio
Este artigo tem como principal objetivo mostrar um passo a passo de como depurar aplicações remotas hospedadas no Azure.
Fala ai pessoal, tudo certo? Trabalhando em um projeto pessoal me deparei em uma situação onde precisei depurar o meu projeto em ambiente remoto (no caso o Azure) pois existem limitações ou não conseguimos reproduzir o problema no ambiente local.
Como já era de se esperar, aliás, o que não temos de serviço quando pensamos no Azure? Quando utilizamos o Azure App Service, contamos com alguns recursos que já vem praticamente prontos para serem utilizados como no caso da depuração remota, no qual estamos falando!
Para começarmos o nosso tutorial irei fazer uma breve introdução do Azure Remote Debugging.
Existem várias opções para depurarmos nossas aplicações, e uma delas é utilizar o Emulador do Azure em nossa máquina local, assim ganhamos tempo e não gastamos crédito. Mesmo efetuando todos os testes no emulador local, as vezes nos deparamos com erros que podem acontecer em ambiente remoto (o que aconteceu no meu caso) e aí podemos utilizar então o recurso de depuração remota. Existem algumas opções para analisarmos o comportamento da nossa aplicação em ambiente remoto:
As camadas Free, Basic e Shared permitem apenas uma conexão simultânea enquanto a Padrão e Premium permitem até cinco. (Limites e Cotas do Azure)
Você pode habilitar a depuração remota nos serviços de nuvem no momento em que os implanta ou em algum serviço que já esteja em execução.
Quando ativamos o serviço de depuração remota, alguns serviços são ativados automaticamente, como o
msvsmon.exemas eles não afetam o desempenho e nem geram custos extras.Quanto ativamos o serviço de depuração remota, o mesmo fica ativo somente por 48 horas por questões de segurança e performance.
Verifique se o atributo
debugdo elementocompilationno arquivo Web.config está definido como verdadeiro. Por padrão, ele é definido como true quando você publica uma configuração de compilação de depuração.
Agora vamos a parte que interessa
Para utilizar o recurso de depuração remota iremos seguir os passos abaixo:
- Acesse o Portal do Azure e navegue até o App Service no qual deseja utilizar o recurso.
- Ative a opção Remote Debugging dentro do App Service no Portal do Azure. Você encontra esta opção dentro da guia Application Settings(Configurações do Aplicativo) para o App Service que você deseja depurar remotamente. (Imagem 1)
- Abra o seu projeto no Visual Studio.
- Coloque um breakpoint (Ponto de Interrupção) na linha no qual deseja interromper a aplicação. (Imagem 3)
- Abra o Cloud Explorer no Visual Studio, em seguida clique com o botão direito sobre o serviço no qual deseja efetuar a depuração remota e depois Attach Debugger. (Imagem 2)
- Note que o Visual Studio irá parar a aplicação no ponto de interrupção escolhido por você no Passo 2. (Imagem 3)




Evite paradas longas em pontos de interrupção durante a depuração remota. O Azure trata um processo parado por mais de alguns minutos como um processo sem resposta e o desliga.
Enquanto você está depurando, o servidor está enviando dados para o Visual Studio, o que pode afetar os encargos de largura de banda.
Se você descobrir que o depurador não entra no código que você deseja depurar, será preciso desabilitar opção Enable Just My Code. (Tools > Options Debugging > General : Enable Just My Code

Outra forma de vincular a depuração remota pelo Visual Studio
Uma outra forma de vincular a depuração remota através do Visual Studio é aquele famoso atalho CTRL + ALT + P ou pelo menu Debug — Attach to Process. Na janela Attach to Process iremos colocar no campo Connection Targed a URL da nossa aplicação no Azure (minha-app.azurewebsites.net), se for a primeira vez que você estiver fazendo esta operação, será necessário inserir os dados de autenticação (o mesmo que você utiliza para fazer o web-deploy), logo em seguida será exibido os processos referente ao serviço remoto, selecionamos o item w3wp.exe em seguida Attach (Imagem 4). Assim que sua aplicação for executada novamente, o mesmo processo descrito acima será iniciado.

Se você perceber nas duas imagens abaixo (Imagem 5), note que o Id do processo exibido na Lista da janela Attach to Process, corresponde ao mesmo quando visualizamos no Gerenciador de Processos do Kudu.


Podemos concluir que o processo de depuração remota não é mais um problema nos dias de hoje, configurar a depuração remota requer um esforço mínimo e o resultado é extremamente satisfatório.
Muito legal e prático né? Espero que gostem do tutorial e se tiverem alguma dúvida, deixe seu comentário abaixo, terei o maior prazer em responder.
Muito obrigado!
