Partilhar via


Depurar a sua aplicação do Service Fabric com o Visual Studio

Depurar um aplicativo local do Service Fabric

Importante

A depuração remota não é suportada no VS 2022

Você pode economizar tempo e dinheiro implantando e depurando seu aplicativo Azure Service Fabric em um cluster de desenvolvimento de computador local. O Visual Studio 2019 ou 2015 pode implantar o aplicativo no cluster local e conectar automaticamente o depurador a todas as instâncias do seu aplicativo. O Visual Studio deve ser executado como administrador para conectar o depurador.

  1. Inicie um cluster de desenvolvimento local seguindo as etapas em Configurando seu ambiente de desenvolvimento do Service Fabric.

  2. Pressione F5 ou clique em Depurar>Iniciar Depuração.

    Captura de tela que mostra o menu Depurar.

  3. Defina pontos de interrupção em seu código e percorra o aplicativo clicando em comandos no menu Depurar .

    Nota

    O Visual Studio é anexado a todas as instâncias do seu aplicativo. Enquanto você está passando pelo código, os pontos de interrupção podem ser atingidos por vários processos, resultando em sessões simultâneas. Tente desativar os pontos de interrupção depois que eles forem atingidos, condicionando cada ponto de interrupção ao ID do thread ou usando eventos de diagnóstico.

  4. A janela Eventos de diagnóstico será aberta automaticamente para que você possa visualizar eventos de diagnóstico em tempo real.

    Ver eventos de diagnóstico em tempo real

  5. Também pode abrir a janela Eventos de Diagnóstico no Cloud Explorer. Em Service Fabric, clique com o botão direito do mouse em qualquer nó e escolha Exibir Rastreamentos de Streaming.

    Abrir a janela de eventos de diagnóstico

    Se você quiser filtrar seus rastreamentos para um serviço ou aplicativo específico, habilite os rastreamentos de streaming nesse serviço ou aplicativo específico.

  6. Os eventos de diagnóstico podem ser vistos no arquivo ServiceEventSource.cs gerado automaticamente e são chamados a partir do código do aplicativo.

    ServiceEventSource.Current.ServiceMessage(this, "My ServiceMessage with a parameter {0}", result.Value.ToString());
    
  7. A janela Eventos de diagnóstico suporta filtragem, pausa e inspeção de eventos em tempo real. O filtro é uma simples pesquisa de cadeia de caracteres da mensagem do evento, incluindo seu conteúdo.

    Filtre, pause e retome ou inspecione eventos em tempo real

  8. Depurar serviços é como depurar qualquer outro aplicativo. Normalmente, você definirá pontos de interrupção por meio do Visual Studio para facilitar a depuração. Embora as Coleções Confiáveis sejam replicadas em vários nós, elas ainda implementam o IEnumerable. Essa implementação significa que você pode usar o Modo de Exibição de Resultados no Visual Studio enquanto depurar para ver o que você armazenou dentro. Para fazer isso, defina um ponto de interrupção em qualquer lugar do seu código.

    Iniciar a depuração de um aplicativo

Executando um script como parte da depuração

Em determinados cenários, talvez seja necessário executar um script como parte do início de uma sessão de depuração (por exemplo, quando não estiver usando os Serviços Padrão).

No Visual Studio, você pode adicionar um arquivo chamado Start-Service.ps1 na pasta Scripts do projeto Aplicativo do Service Fabric (.sfproj). Esse script será invocado depois que o aplicativo tiver sido criado no cluster local.

Depurar um aplicativo remoto do Service Fabric

Se seus aplicativos do Service Fabric estiverem sendo executados em um cluster do Service Fabric no Azure, você poderá depurar esses aplicativos remotamente, diretamente do Visual Studio.

Aviso

A depuração remota destina-se a cenários de desenvolvimento/teste e não deve ser usada em ambientes de produção, devido ao impacto nos aplicativos em execução.

  1. Navegue até o cluster no Cloud Explorer. Clique com o botão direito do mouse e escolha Ativar depuração

    Habilitar depuração remota

    Essa ação iniciará o processo de habilitação da extensão de depuração remota nos nós do cluster e nas configurações de rede necessárias.

  2. Clique com o botão direito do mouse no nó do cluster no Cloud Explorer e escolha Anexar Depurador

  3. Na caixa de diálogo Anexar ao processo, escolha o processo que deseja depurar e clique em Anexar

    Escolha o processo

    O nome do processo ao qual você deseja anexar é igual ao nome do assembly do projeto de serviço.

    O depurador será anexado a todos os nós que executam o processo.

    • No caso em que você está depurando um serviço sem estado, todas as instâncias do serviço em todos os nós fazem parte da sessão de depuração.

    • Se você estiver depurando um serviço com monitoração de estado, somente a réplica primária de qualquer partição estará ativa e, portanto, capturada pelo depurador. Se a réplica primária for movida durante a sessão de depuração, o processamento dessa réplica ainda fará parte da sessão de depuração.

    • Para capturar apenas partições ou instâncias relevantes de um determinado serviço, você pode usar pontos de interrupção condicionais para quebrar apenas uma partição ou instância específica.

      Ponto de interrupção condicional

      Nota

      Atualmente, não oferecemos suporte à depuração de um cluster do Service Fabric com várias instâncias do mesmo nome executável de serviço.

  4. Depois de concluir a depuração do aplicativo, você pode desativar a extensão de depuração remota clicando com o botão direito do mouse no cluster no Cloud Explorer e escolhendo Desativar depuração

Rastreamentos de streaming de um nó de cluster remoto

Você também pode transmitir rastreamentos diretamente de um nó de cluster remoto para o Visual Studio. Esse recurso permite transmitir eventos de rastreamento ETW, produzidos em um nó de cluster do Service Fabric.

Nota

Esse recurso requer o SDK do Service Fabric 2.0 e o SDK do Azure para .NET 2.9. Esse recurso dá suporte apenas a clusters em execução no Azure.

Aviso

Os rastreamentos de streaming destinam-se a cenários de desenvolvimento/teste e não devem ser usados em ambientes de produção, devido ao impacto nos aplicativos em execução. Em um cenário de produção, você deve confiar no encaminhamento de eventos usando o Diagnóstico do Azure.

  1. Navegue até o cluster no Cloud Explorer. Clique com o botão direito do mouse e escolha Ativar rastreamentos de streaming

    Ativar rastreamentos de streaming remoto

    Essa ação iniciará o processo de habilitação da extensão de rastreamento de streaming nos nós do cluster, bem como as configurações de rede necessárias.

  2. Expanda o elemento Nós no Cloud Explorer, clique com o botão direito do mouse no nó do qual deseja transmitir rastreamentos e escolha Exibir rastreamentos de streaming

    Ver rastreamentos de streaming remoto

    Repita a etapa 2 para quantos nós quiser ver os rastreamentos. Cada fluxo de nós aparecerá em uma janela dedicada.

    Agora você pode ver os rastreamentos emitidos pelo Service Fabric e seus serviços. Se você quiser filtrar os eventos para mostrar apenas um aplicativo específico, basta digitar o nome do aplicativo no filtro.

    Visualização de rastreamentos de streaming

  3. Depois de concluir os rastreamentos de streaming do cluster, você pode desativar os rastreamentos de streaming remoto, clicando com o botão direito do mouse no cluster no Cloud Explorer e escolhendo Desativar rastreamentos de streaming

    Desativar rastreamentos de streaming remoto

Próximos passos