Sdílet prostřednictvím


Ladění .NET Core v Linuxu pomocí SSH připojením k procesu

Od sady Visual Studio 2017 se můžete připojit k procesům .NET Core a .NET 5+ spuštěným v místním nebo vzdáleném nasazení Linuxu přes Secure Shell (SSH). Tento článek popisuje, jak nastavit ladění a jak ladit. Scénáře ladění pomocí kontejnerů Dockeru najdete v tématu Připojení k procesu spuštěného v kontejneru Dockeru a v článcích o nástrojích kontejneru. Pokud chcete ladit Linux ve WSL 2 ze sady Visual Studio (bez připojení k procesu), přečtěte si téma Ladění aplikací .NET Core ve WSL 2 pomocí sady Visual Studio.

Poznámka:

Pro ladění Linuxu spuštěného ve službě Azure Kubernetes Service (AKS) se místo připojení ke zpracování doporučuje přemostit na Kubernetes .

Požadavky

  • Na linuxovém serveru musíte nainstalovat server SSH, rozbalit a nainstalovat pomocí nástroje curl nebo wget. Například na Ubuntu to můžete udělat spuštěním:

    sudo apt-get install openssh-server unzip curl
    

    SFTP musí být povolené i SSH. Většina distribucí SSH ve výchozím nastavení nainstaluje a povolí SFTP, ale to není vždy případ.

  • Na serveru s Linuxem nainstalujte modul runtime .NET v Linuxu a najděte stránku odpovídající vaší distribuci Linuxu (například Ubuntu). Sada .NET SDK není nutná.

  • Komplexní pokyny pro ASP.NET Core najdete v tématu Host ASP.NET Core v Linuxu s Nginx a Host ASP.NET Core v Linuxu s Apache.

Příprava aplikace na ladění

Příprava aplikace na ladění:

  • Při sestavování aplikace zvažte použití konfigurace ladění. Ladění maloobchodního kompilovaného kódu (konfigurace vydané verze) je mnohem obtížnější než kód zkompilovaný laděním. Pokud potřebujete použít konfiguraci vydané verze, nejprve zakažte pouze můj kód. Pokud chcete toto nastavení zakázat, zvolte Možnosti>nástrojů>Ladění a potom zrušte výběr možnosti Povolit pouze můj kód.
  • Ujistěte se, že je projekt nakonfigurovaný tak, aby vytvářel přenosné soubory PDB (což je výchozí nastavení) a ujistěte se, že jsou soubory PDB ve stejném umístění jako knihovna DLL. Pokud to chcete nakonfigurovat v sadě Visual Studio, klikněte pravým tlačítkem myši na projekt a potom zvolte Symboly obecného>ladění vlastností.>
  • Ujistěte se, že je projekt nakonfigurovaný tak, aby vytvářel přenosné soubory PDB (což je výchozí nastavení) a ujistěte se, že jsou soubory PDB ve stejném umístění jako knihovna DLL. Chcete-li tuto konfiguraci nakonfigurovat v sadě Visual Studio, klikněte pravým tlačítkem myši na projekt a potom zvolte Vlastnosti>sestavit>rozšířené>informace o ladění.

Sestavení a nasazení aplikace

Před laděním můžete k nasazení aplikace použít několik metod. Je například možné:

  • Zkopírujte zdroje do cílového počítače a sestavte je na počítači s Linuxem dotnet build .

  • Sestavte aplikaci ve Windows a pak přeneste artefakty sestavení do počítače s Linuxem. (Artefakty sestavení se skládají ze samotné aplikace, přenosných souborů PDB, všech knihoven modulu runtime, na kterých může záviset, a souboru .deps.json .)

Po nasazení aplikace spusťte aplikaci.

Připojit ladicí program

Když je aplikace spuštěná na počítači s Linuxem, jste připraveni připojit ladicí program.

  1. V sadě Visual Studio zvolte Připojit k procesu ladění>....

  2. V seznamu typ Připojení vyberte SSH.

  3. Změňte Připojení ion Target na IP adresu nebo název hostitele cílového počítače.

    Pokud jste ještě nezadali přihlašovací údaje, zobrazí se výzva k zadání hesla nebo souboru privátního klíče.

    Neexistují žádné požadavky na porty ke konfiguraci, s výjimkou portu, na kterém je server SSH spuštěný.

  4. Vyhledejte proces, který chcete ladit.

    Váš kód běží buď v jedinečném názvu procesu, nebo v procesu s názvem dotnet. Pokud chcete najít proces, který vás zajímá, zkontrolujte sloupec Název , který zobrazuje argumenty příkazového řádku pro daný proces.

    V následujícím příkladu uvidíte seznam procesů ze vzdáleného počítače s Linuxem přes přenos SSH zobrazený v dialogovém okně Připojit k procesu .

    Attach to Linux process

  5. Zvolte Připojit.

  6. V zobrazeném dialogovém okně vyberte typ kódu, který chcete ladit. Zvolte Managed (.NET Core pro Unix).

  7. K ladění aplikace použijte funkce ladění sady Visual Studio.

    V následujícím příkladu uvidíte ladicí program sady Visual Studio zastavený na zarážce v kódu spuštěném na vzdáleném počítači s Linuxem.

    Hit a breakpoint