Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Vanaf Visual Studio 2017 kunt u koppelen aan .NET Core- en .NET 5+-processen die worden uitgevoerd op een lokale of externe Linux-implementatie via Secure Shell (SSH). In dit artikel wordt beschreven hoe u foutopsporing instelt en hoe u fouten opspoort. Zie Koppelen aan een proces dat wordt uitgevoerd in een Docker-container en de artikelen over containerhulpprogramma's voor foutopsporing met behulp van Docker-containers. Als u fouten in Linux op WSL 2 wilt opsporen vanuit Visual Studio (zonder verbinding met proces), zie Fouten opsporen in .NET Core-apps in WSL 2 met Visual Studio.
Opmerking
Voor foutopsporing in Linux die wordt uitgevoerd in Azure Kubernetes Service (AKS), wordt Bridge to Kubernetes aanbevolen in plaats van te koppelen aan het proces.
Vereiste voorwaarden
Op de Linux-server moet u de SSH-server installeren, uitpakken en installeren met curl of wget. Op Ubuntu kunt u dit bijvoorbeeld doen door het volgende uit te voeren:
sudo apt-get install openssh-server unzip curlSFTP moet zijn ingeschakeld en SSH. De meeste SSH-distributies installeren en inschakelen SFTP standaard, maar dat is niet altijd het geval.
Installeer op de Linux-server de .NET-runtime op Linux en zoek de pagina die overeenkomt met uw Linux-distributie (zoals Ubuntu). De .NET SDK is niet vereist.
Om ervoor te zorgen dat vereiste .NET-foutopsporingsservices beschikbaar zijn voor foutopsporing, moet u voorkomen dat u de toepassing publiceert als uitvoerbaar bestand met één bestand.
Zie Host ASP.NET Core op Linux met Nginx en Host ASP.NET Core op Linux met Apache voor uitgebreide ASP.NET Core-instructies.
Uw toepassing voorbereiden voor foutopsporing
Overweeg het gebruik van een foutopsporingsconfiguratie wanneer u de toepassing bouwt. Het is moeilijker om fouten op te sporen in code die in de detailhandel is gecompileerd (een releaseconfiguratie) dan code die is gecompileerd met fouten. Als u een releaseconfiguratie wilt gebruiken, moet u eerst de functie Just My Code uitschakelen. Open het deelvenster Hulpmiddelen>Opties en vouw de sectie Alle instellingen>Debuggen>Algemeen uit. Schakel het selectievakje Just My Code inschakelen uit.
Overweeg het gebruik van een foutopsporingsconfiguratie wanneer u de toepassing bouwt. Het is moeilijker om fouten op te sporen in code die in de detailhandel is gecompileerd (een releaseconfiguratie) dan code die is gecompileerd met fouten. Als u een releaseconfiguratie wilt gebruiken, moet u eerst de functie Just My Code uitschakelen. Open het dialoogvenster Extra>Opties en vouw de sectie Foutopsporing>Algemeen uit. Schakel het selectievakje Just My Code inschakelen uit.
Zorg ervoor dat uw project is geconfigureerd voor het produceren van draagbare PDBs (de standaardinstelling) en zorg ervoor dat de PDBs zich op dezelfde locatie bevinden als het DLL-bestand. Als u dit wilt configureren in Visual Studio, klikt u met de rechtermuisknop op het project en kiest u eigenschappen>voor algemene>foutopsporingssymbolen.
Zorg ervoor dat uw project is geconfigureerd voor het produceren van draagbare PDBs (de standaardinstelling) en zorg ervoor dat de PDBs zich op dezelfde locatie bevinden als het DLL-bestand. Als u dit wilt configureren in Visual Studio, klikt u met de rechtermuisknop op het project en kiest u Eigenschappen>bouwen>geavanceerde>foutopsporingsgegevens.
De toepassing bouwen en implementeren
U kunt verschillende methoden gebruiken om de app te implementeren voordat u begint met foutopsporing. U kunt bijvoorbeeld het volgende doen:
Kopieer bronnen naar de doelcomputer en bouw mee
dotnet buildop de Linux-computer.Bouw de app in Windows en breng de buildartefacten vervolgens over naar de Linux-machine. (De buildartefacten bestaan uit de toepassing zelf, de draagbare PDBs, eventuele runtimebibliotheken waarvan het afhankelijk kan zijn en het .deps.json-bestand .)
Wanneer de app is geïmplementeerd, start u de toepassing.
Bevestig de debugger
Wanneer de toepassing wordt uitgevoerd op de Linux-computer, kunt u het foutopsporingsprogramma koppelen.
Kies in Visual Studio Debug>Attach to Process....
Selecteer SSH in de lijst Verbindingstype.
Wijzig het verbindingsdoel in het IP-adres of de hostnaam van de doelcomputer.
Als u geen referenties hebt opgegeven, wordt u gevraagd een wachtwoord en/of een persoonlijk sleutelbestand in te voeren. Zie Een externe verbinding instellen voor meer informatie over het gebruik van een privésleutelbestand.
Er zijn geen poortvereisten om te configureren, behalve de poort waarop de SSH-server wordt uitgevoerd.
Zoek het proces dat u wilt opsporen.
Uw code wordt uitgevoerd in een unieke procesnaam of een proces met de naam dotnet. Als u het proces wilt vinden waarin u geïnteresseerd bent, controleert u de kolom Titel , waarin de opdrachtregelargumenten voor het proces worden weergegeven.
In het volgende voorbeeld ziet u een lijst met processen van een externe Linux-machine via een SSH-transport dat wordt weergegeven in het dialoogvenster Koppelen aan proces .
Kies , voegbij.
Selecteer in het dialoogvenster dat wordt weergegeven het type code dat u wilt opsporen. Kies Managed (.NET Core voor Unix).
Gebruik Visual Studio-foutopsporingsfuncties om fouten in de app op te sporen.
In het volgende voorbeeld ziet u dat het Foutopsporingsprogramma van Visual Studio is gestopt bij een onderbrekingspunt in code die wordt uitgevoerd op een externe Linux-computer.