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 a provádět ladění. 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, který běží ve službě Azure Kubernetes Service (AKS), se místo připojení k procesu doporučuje použít Bridge to 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 i SSH musí být povoleny. 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á.

    Abyste měli jistotu, že jsou k dispozici požadované služby ladění .NET, vyhněte se publikování aplikace jako jednosouborového spustitelného souboru.

  • 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ři sestavování aplikace zvažte použití konfigurace ladění. Ladění kódu kompilovaného v konfiguraci vydání (Release) je obtížnější než ladění debug-kompilovaného kódu. Pokud potřebujete použít konfiguraci vydané verze, nejprve zakažte funkci Jen můj kód. Otevřete panel Nástroje>Možnosti a rozbalte sekci Všechna nastavení>Ladění>Obecné. Zrušte zaškrtnutí políčka Povolit pouze můj kód .

Při sestavování aplikace zvažte použití konfigurace ladění. Ladění kódu kompilovaného v konfiguraci vydání (Release) je obtížnější než ladění debug-kompilovaného kódu. Pokud potřebujete použít konfiguraci vydané verze, nejprve zakažte funkci Jen můj kód. Otevřete dialogové oknoMožnosti> a rozbalte část Ladění>Obecné. Zrušte zaškrtnutí políčka 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. Pro konfiguraci v sadě Visual Studio klikněte pravým tlačítkem myši na projekt a vyberte Vlastnosti>Obecné>Symboly ladění.

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 toto konfigurovat 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 zahájením ladění můžete k nasazení aplikace použít několik metod. Například můžete:

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

  • 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řipojte ladicí program

Jakmile je aplikace spuštěna na počítači s Linuxem, jste připraveni připojit debugger.

  1. V sadě Visual Studio zvolteladění>

  2. V seznamu Typ připojení vyberte SSH.

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

    Pokud jste nezadali přihlašovací údaje, zobrazí se výzva k zadání hesla nebo souboru privátního klíče. Další informace o použití souboru privátního klíče naleznete v tématu Nastavení vzdáleného připojení.

    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 .

    Snímek obrazovky s procesem Připojit k Linuxu

    Snímek obrazovky s procesem Připojit k Linuxu

  5. Zvolte Připojit.

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

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

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

    Snímek obrazovky se zarážkou

    Snímek obrazovky se zarážkou