Compartilhar via


Depurar seu aplicativo do Service Fabric usando o Visual Studio

Depurar um aplicativo local do Service Fabric

Importante

Não há suporte para a depuração remota no VS 2022

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

  1. Inicie um cluster de desenvolvimento local seguindo as etapas em Configurando o 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 os pontos de interrupção em seu código e explore o aplicativo clicando nos comandos do menu Depurar .

    Observação

    O Visual Studio se conecta a todas as instâncias do seu aplicativo. Ao percorrer o código, os pontos de interrupção podem ser atingidos por vários processos, resultando em sessões simultâneas. Tente desabilitar os pontos de interrupção depois que eles forem atingidos, tornando o ponto de interrupção condicional na ID do thread, ou usando eventos de diagnóstico.

  4. A janela Eventos de Diagnóstico abrirá automaticamente para exibir eventos de diagnóstico em tempo real.

    Exibir eventos de diagnóstico em tempo real

  5. Você também pode abrir a janela Eventos de Diagnóstico no Gerenciador de Nuvem. 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

    Para filtrar os rastreamentos para um serviço ou um aplicativo específico, habilite o streaming de rastreamentos nele.

  6. Os eventos de diagnóstico podem ser vistos no arquivo ServiceEventSource.cs gerado automaticamente e são chamados 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 permite filtragem, pausa e eventos de inspeção em tempo real. O filtro é uma pesquisa simples de cadeia de caracteres da mensagem do evento, incluindo seu conteúdo.

    Filtrar, pausar e retomar ou inspecionar eventos em tempo real

  8. A depuração de serviços é semelhante à depuração de qualquer outro aplicativo. Normalmente, você define pontos de interrupção por meio do Visual Studio para facilitar a depuração. Embora as Reliable Collections sejam replicadas em vários nós, elas ainda implementam IEnumerable. Isso significa que você pode usar a Exibição de Resultados no Visual Studio durante a depuração para ver o que foi armazenado. Basta definir um ponto de interrupção em qualquer lugar do código.

    Iniciar depuração de um aplicativo

Executando um script como parte da depuração

Em determinados cenários, pode ser necessário executar um script como parte do início de uma sessão de depuração (por exemplo, ao não usar serviços padrão).

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

Depurar um aplicativo remoto do Service Fabric

Se seus aplicativos Service Fabric estiverem em execução em um cluster do Service Fabric no Azure, será possível depurá-los de forma direta e remota pelo Visual Studio.

Observação

O recurso requer SDK do Service Fabric 2.0 e SDK do Azure para .NET 2.9.

Aviso

A depuração remota é destinada a cenários de desenvolvimento/teste e não para uso em ambientes de produção, devido ao impacto nos aplicativos em execução.

  1. Acesse seu cluster no Cloud Explorer. Clique com o botão direito do mouse e escolha Habilitar depuração.

    Habilitar depuração remota

    Isso iniciará o processo de habilitação da extensão de depuração remota em seus nós de cluster, bem como as configurações de rede necessárias.

  2. Clique com o botão direito do mouse no nó de cluster em Gerenciador de Nuvem e escolha Anexar Depurador

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

    Escolher processo

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

    O depurador vai anexar a todos os nós que estão executando o processo.

    • Ao depurar um serviço sem estado, todas as instâncias dele em todos os nós farão parte da sessão de depuração.

    • Ao depurar um serviço com estado, como só a réplica primária de uma partição estará ativa, ela será capturada pelo depurador. Se a réplica primária for movida durante a sessão de depuração, o processamento de tal réplica ainda fará parte da sessão de depuração.

    • É possível usar pontos de interrupção condicionais para interromper apenas as partições ou instâncias relevantes para a captura.

      Ponto de interrupção condicional

      Observação

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

  4. Depois de concluir a depuração do aplicativo, você pode desabilitar a extensão de depuração remota clicando com o botão direito do mouse em Gerenciador de Nuvem e escolhendo Desabilitar Depuração

Transmitindo rastreamentos 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 gerados em um nó de cluster do Service Fabric.

Observação

O recurso requer o SDK do Service Fabric 2.0 e o SDK do Azure para .NET 2.9. Esse recurso só oferece suporte a clusters em execução no Azure.

Aviso

A transmissão de rastreamentos destina-se a cenários de desenvolvimento/teste e não ao uso em ambientes de produção, devido ao impacto nos aplicativos em execução. Em um cenário de produção, você deve confiar nos eventos de encaminhamento usando o Diagnóstico do Azure.

  1. Acesse seu cluster no Cloud Explorer. Clique com o botão direito do mouse e escolha Habilitar a transmissão de rastreamentos

    Habilitar transmissão remota de rastreamentos

    Isso iniciará o processo de habilitação da extensão de transmissão de rastreamentos em seus nós de cluster, bem como das configurações de rede necessárias.

  2. Expanda o elemento Nós no Gerenciador de Nuvem, clique com o botão direito do mouse no nó do qual deseja transmitir rastreamentos e escolha Exibir Transmissão de Rastreamentos

    Exibir transmissão remota de rastreamentos

    Repita a etapa 2 para o número de nós dos quais você quer ver os rastreamentos. Cada fluxo de nó será mostrado em uma janela dedicada.

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

    Exibindo transmissão de rastreamentos

  3. Depois de terminar a transmissão de rastreamentos do seu cluster, é possível desabilitar a transmissão remota de rastreamentos clicando com o botão direito do mouse no cluster em Gerenciador de Nuvem e escolhendo Desabilitar Rastreamentos de Streaming

    Desabilitar transmissão remota de rastreamentos

Próximas etapas