Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Począwszy od programu Visual Studio 2017, można dołączać do procesów .NET Core i .NET 5+ uruchomionych w lokalnym lub zdalnym wdrożeniu systemu Linux za pośrednictwem protokołu Secure Shell (SSH). W tym artykule opisano sposób konfigurowania debugowania i debugowania. Aby zapoznać się ze scenariuszami debugowania przy użyciu kontenerów platformy Docker, zobacz Artykuły dołączanie do procesu uruchomionego w kontenerze platformy Docker i artykuły dotyczące narzędzi kontenerów . Aby debugować system Linux w programie WSL 2 z poziomu programu Visual Studio (bez dołączania do procesu), zobacz Debugowanie aplikacji .NET Core w programie WSL 2 za pomocą programu Visual Studio.
Uwaga
W przypadku debugowania systemu Linux działającego w usłudze Azure Kubernetes Service (AKS) zaleca się dołączanie mostu do platformy Kubernetes zamiast dołączania do procesu.
Wymagania wstępne
Na serwerze z systemem Linux należy zainstalować serwer SSH, rozpakować i zainstalować za pomocą narzędzia curl lub wget. Na przykład w systemie Ubuntu możesz to zrobić, uruchamiając polecenie:
sudo apt-get install openssh-server unzip curl
Protokół SFTP musi być włączony, a także protokół SSH. Większość dystrybucji SSH instaluje i domyślnie włącza protokół SFTP, ale nie zawsze tak jest.
Na serwerze z systemem Linux zainstaluj środowisko uruchomieniowe platformy .NET w systemie Linux i znajdź stronę zgodną z dystrybucją systemu Linux (np. Ubuntu). Zestaw .NET SDK nie jest wymagany.
Aby uzyskać kompleksowe instrukcje ASP.NET Core, zobacz Host ASP.NET Core w systemie Linux z serwerami Nginx i hostem ASP.NET Core w systemie Linux przy użyciu platformy Apache.
Przygotowywanie aplikacji do debugowania
Aby przygotować aplikację do debugowania:
- Rozważ użycie konfiguracji debugowania podczas kompilowania aplikacji. Debugowanie kodu kompilowanego w wersji detalicznej (konfiguracji wydania) jest znacznie trudniejsze niż debugowanie skompilowanego kodu. Jeśli musisz użyć konfiguracji wydania, najpierw wyłącz opcję Tylko mój kod. Aby wyłączyć to ustawienie, wybierz pozycję Narzędzia>Opcje>Debugowanie, a następnie usuń zaznaczenie pozycji Włącz tylko mój kod.
- Upewnij się, że projekt został skonfigurowany do tworzenia przenośnych plików PDB (co jest ustawieniem domyślnym) i upewnij się, że pliki PDB znajdują się w tej samej lokalizacji co biblioteka DLL. Aby to skonfigurować w programie Visual Studio, kliknij prawym przyciskiem myszy projekt, a następnie wybierz pozycję Właściwości>Ogólne>symbole debugowania.
- Upewnij się, że projekt został skonfigurowany do tworzenia przenośnych plików PDB (co jest ustawieniem domyślnym) i upewnij się, że pliki PDB znajdują się w tej samej lokalizacji co biblioteka DLL. Aby to skonfigurować w programie Visual Studio, kliknij prawym przyciskiem myszy projekt, a następnie wybierz polecenie Właściwości>Kompiluj>zaawansowane>informacje o debugowaniu.
Kompilowanie i wdrażanie aplikacji
Aby wdrożyć aplikację przed debugowaniem, można użyć kilku metod. Można na przykład:
Skopiuj źródła na komputer docelowy i skompiluj je na maszynie z
dotnet build
systemem Linux.Skompiluj aplikację w systemie Windows, a następnie przenieś artefakty kompilacji na maszynę z systemem Linux. (Artefakty kompilacji składają się z samej aplikacji, przenośnych plików PDB, wszelkich bibliotek środowiska uruchomieniowego, od których może zależeć, oraz pliku .deps.json ).
Po wdrożeniu aplikacji uruchom aplikację.
Dołączanie debugera
Gdy aplikacja jest uruchomiona na maszynie z systemem Linux, możesz dołączyć debuger.
W programie Visual Studio wybierz pozycję Debuguj dołączanie>do procesu....
Na liście Typ połączenia wybierz pozycję SSH.
Zmień element docelowy połączenia na adres IP lub nazwę hosta komputera docelowego.
Jeśli nie podano jeszcze poświadczeń, zostanie wyświetlony monit o wprowadzenie hasła i/lub pliku klucza prywatnego. Aby uzyskać więcej informacji na temat korzystania z pliku klucza prywatnego, zobacz Konfigurowanie połączenia zdalnego.
Nie ma żadnych wymagań dotyczących portów do skonfigurowania, z wyjątkiem portu, na którym działa serwer SSH.
Znajdź proces, który chcesz debugować.
Kod jest uruchamiany w unikatowej nazwie procesu lub w procesie o nazwie dotnet. Aby znaleźć interesujący Cię proces, sprawdź kolumnę Tytuł , która pokazuje argumenty wiersza polecenia dla procesu.
W poniższym przykładzie zostanie wyświetlona lista procesów ze zdalnego komputera z systemem Linux za pośrednictwem transportu SSH wyświetlanego w oknie dialogowym Dołączanie do procesu .
Wybierz pozycję Dołącz.
W wyświetlonym oknie dialogowym wybierz typ kodu, który chcesz debugować. Wybierz pozycję Zarządzane (.NET Core dla systemu Unix).
Debugowanie aplikacji przy użyciu funkcji debugowania programu Visual Studio.
W poniższym przykładzie debuger programu Visual Studio został zatrzymany w punkcie przerwania w kodzie uruchomionym na zdalnej maszynie z systemem Linux.