Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A partir do Visual Studio 2017, você pode anexar processos do .NET Core e do .NET 5+ em execução em uma implantação Linux local ou remota por meio do Secure Shell (SSH). Este artigo descreve como configurar a depuração e como depurar. Para cenários de depuração usando contêineres do Docker, consulte Anexar a um processo em execução em um contêiner do Docker e os artigos das ferramentas de contêiner . Para depurar o Linux no WSL 2 a partir do Visual Studio (sem ligação direta ao processo), consulte Depurar aplicativos .NET Core no WSL 2 com o Visual Studio.
Observação
Para depurar o Linux em execução no Serviço Kubernetes do Azure (AKS), o Bridge to Kubernetes é recomendado em vez de anexar ao processo.
Pré-requisitos
No servidor Linux, você precisa instalar o servidor SSH, descompactar e instalar com curl ou wget. Por exemplo, no Ubuntu você pode fazer isso executando:
sudo apt-get install openssh-server unzip curlSFTP deve ser habilitado, bem como SSH. A maioria das distribuições SSH instala e habilita o SFTP por padrão, mas nem sempre é esse o caso.
No servidor Linux, instale o tempo de execução do .NET no Linux e encontre a página correspondente à sua distribuição Linux (como o Ubuntu). O SDK .NET não é necessário.
Para garantir que os serviços de depuração .NET necessários estão disponíveis para depuração, evite publicar a aplicação como um executável de ficheiro único.
Para obter instruções abrangentes sobre o ASP.NET Core, consulte Host ASP.NET Core no Linux com Nginx e Host ASP.NET Core no Linux com Apache.
Preparar a sua aplicação para depuração
Considere usar uma configuração 'Debug' ao criar a aplicação. É mais difícil depurar código compilado para distribuição (uma configuração de lançamento) do que código compilado para depuração. Se você precisar usar uma configuração de versão, primeiro desative o recurso Just My Code. Abra o painel Ferramentas>Opções e expanda a Todos os Ajustes>Depuração>Geral seção. Desmarque a caixa de seleção Ativar apenas meu código .
Considere usar uma configuração 'Debug' ao criar a aplicação. É mais difícil depurar código compilado para distribuição (uma configuração de lançamento) do que código compilado para depuração. Se você precisar usar uma configuração de versão, primeiro desative o recurso Just My Code. Abra a caixa de diálogo Ferramentas>Opções e expanda a seção Depuração>Geral. Desmarque a caixa de seleção Ativar apenas meu código .
Verifique se o projeto está configurado para produzir PDBs portáteis (que é a configuração padrão) e se os PDBs estão no mesmo local que a DLL. Para configurar isso no Visual Studio, clique com o botão direito do rato no projeto e escolha Propriedades>Geral>Símbolos de depuração.
Criar e implantar o aplicativo
Você pode usar vários métodos para desempenhar a aplicação antes de começar o debug. Por exemplo, você pode:
Copie fontes para o computador de destino e construa com
dotnet buildna máquina Linux.Crie o aplicativo no Windows e, em seguida, transfira os artefatos de compilação para a máquina Linux. (Os artefatos de compilação consistem no próprio aplicativo, nos PDBs portáteis, em quaisquer bibliotecas de tempo de execução das quais ele possa depender e no arquivo .deps.json .)
Quando a aplicação for implantada, inicie a aplicação.
Anexar o depurador
Quando o aplicativo está sendo executado na máquina Linux, você está pronto para anexar o depurador.
No Visual Studio, escolha Depurar>Anexar ao Processo....
Na lista Tipo de Conexão, selecione SSH.
Altere o Destino da Conexão para o endereço IP ou nome do host do computador de destino.
Se não tiver fornecido credenciais, ser-lhe-á pedido que introduza uma palavra-passe e/ou um ficheiro de chave privada. Para obter mais informações sobre como usar um arquivo de chave privada, consulte Configurar uma conexão remota.
Não há requisitos de porta para configurar, exceto a porta em que o servidor SSH está sendo executado.
Encontre o processo que você gostaria de depurar.
Seu código é executado em um nome de processo exclusivo ou em um processo chamado dotnet. Para encontrar o processo em que você está interessado, verifique a coluna Título , que mostra os argumentos da linha de comando para o processo.
No exemplo a seguir, você verá uma lista de processos de uma máquina Linux remota em um transporte SSH exibido na caixa de diálogo Anexar ao Processo .
Escolha Anexar.
Na caixa de diálogo exibida, selecione o tipo de código que deseja depurar. Escolha Gerenciado (.NET Core para Unix).
Use os recursos de depuração do Visual Studio para depurar o aplicativo.
No exemplo a seguir, você vê o depurador do Visual Studio parado em um ponto de interrupção no código em execução em uma máquina Linux remota.