Aracılığıyla paylaş


Bir işleme ekleyerek SSH kullanarak Linux'ta .NET Core'da hata ayıklama

Visual Studio 2017'den başlayarak, Secure Shell (SSH) üzerinden yerel veya uzak linux dağıtımında çalışan .NET Core ve .NET 5+ işlemlerine ekleyebilirsiniz. Bu makalede hata ayıklamayı ayarlama ve hata ayıklama işlemleri açıklanmaktadır. Docker kapsayıcılarını kullanarak hata ayıklama senaryoları için bkz. Docker kapsayıcısı üzerinde çalışan bir işleme ekleme ve bunun yerine kapsayıcı araçları makaleleri. Visual Studio'dan WSL 2 üzerinde Linux'ta hata ayıklamak için (işlem eklemesi olmadan) bkz. Visual Studio ile WSL 2'de .NET Core Uygulamalarında Hata Ayıklama.

Uyarı

Azure Kubernetes Service'te (AKS) çalışan Linux'ta hata ayıklamak için işleme eklemek yerine Bridge to Kubernetes önerilir.

Önkoşullar

  • Linux sunucusunda SSH sunucusu yüklemeniz, sıkıştırmasını açmanız ve curl veya wget ile yüklemeniz gerekir. Örneğin, Ubuntu'da şunları çalıştırarak bunu yapabilirsiniz:

    sudo apt-get install openssh-server unzip curl
    

    SFTP'nin yanı sıra SSH de etkinleştirilmelidir. Çoğu SSH dağıtımı varsayılan olarak SFTP'yi yükler ve etkinleştirir, ancak her zaman böyle değildir.

  • Linux sunucusunda Linux'a .NET çalışma zamanını yükleyin ve Linux dağıtımınızla eşleşen sayfayı (Ubuntu gibi) bulun. .NET SDK'sı gerekli değildir.

    Hata ayıklama için gerekli .NET hata ayıklama hizmetlerinin kullanılabilir olduğundan emin olmak için, uygulamayı tek dosyalı yürütülebilir dosya olarak yayımlamaktan kaçının.

  • Kapsamlı ASP.NET Core yönergeleri için bkz. Linux'ta Nginx ile ASP.NET Core'u Barındır ve Linux üzerinde Apache ile ASP.NET Core'u Barındır.

Uygulamanızı hata ayıklamaya hazırlama

Uygulamayı oluştururken hata ayıklama yapılandırması kullanmayı göz önünde bulundurun. Perakende olarak derlenmiş kodda (Yayın yapılandırması) hata ayıklamak, hata ayıklama derlenmiş koddan daha zordur. Derleme yapılandırması kullanmanız gerekiyorsa, önce Sadece Kendi Kodum özelliğini devre dışı bırakın. Araçlar>Seçenekleri bölmesini açın ve Tüm Ayarlar>Hata Ayıklama>Genel bölümünü genişletin. Yalnızca Benim Kodumu Etkinleştir onay kutusunu temizleyin.

Uygulamayı oluştururken hata ayıklama yapılandırması kullanmayı göz önünde bulundurun. Perakende olarak derlenmiş kodda (Yayın yapılandırması) hata ayıklamak, hata ayıklama derlenmiş koddan daha zordur. Derleme yapılandırması kullanmanız gerekiyorsa, önce Sadece Kendi Kodum özelliğini devre dışı bırakın. Araçlar>Seçenekleri iletişim kutusunu açın ve Hata Ayıklama>Genel bölümünü genişletin. Yalnızca Benim Kodumu Etkinleştir onay kutusunu temizleyin.

Projenizin taşınabilir PDB'ler üretecek şekilde yapılandırıldığından emin olun (varsayılan ayardır) ve PDB'lerin DLL ile aynı konumda olduğundan emin olun. Visual Studio'da bunu yapılandırmak için projeye sağ tıklayın, ardından ÖzelliklerGenel>Hata Ayıklama simgeleri'ni> seçin.

Projenizin taşınabilir PDB'ler üretecek şekilde yapılandırıldığından emin olun (varsayılan ayardır) ve PDB'lerin DLL ile aynı konumda olduğundan emin olun. Visual Studio'da bunu yapılandırmak için projeye sağ tıklayın, ardından Özellikler>Derleme>Gelişmiş>Hata Ayıklama Bilgileri'ni seçin.

Uygulamayı derleme ve dağıtma

Hata ayıklamaya başlamadan önce uygulamayı dağıtmak için çeşitli yöntemler kullanabilirsiniz. Örneğin şunları yapabilirsiniz:

  • Kaynakları hedef bilgisayara kopyalayın ve Linux makinesinde dotnet build kullanarak derleyin.

  • Uygulamayı Windows üzerinde derleyin ve ardından derleme yapıtlarını Linux makinesine aktarın. (Derleme yapıtları uygulamanın kendisinden, taşınabilir PDB'lerden, bağımlı olabileceği tüm çalışma zamanı kitaplıklarından ve .deps.json dosyasından oluşur.)

Uygulama dağıtıldığında uygulamayı başlatın.

Hata ayıklayıcıyı ekleme

Uygulama Linux makinesinde çalışırken hata ayıklayıcısını eklemeye hazırsınız demektir.

  1. Visual Studio'da Hata Ayıkla>İşleme Ekle… seçeneğini belirleyin.

  2. Bağlantı Türü listesinde SSH'yi seçin.

  3. Bağlantı Hedefi'ni hedef bilgisayarın IP adresi veya ana bilgisayar adıyla değiştirin.

    Kimlik bilgilerini sağlamadıysanız parola ve/veya özel anahtar dosyası girmeniz istenir. Özel anahtar dosyası kullanma hakkında daha fazla bilgi için bkz. Uzak bağlantı ayarlama.

    SSH sunucusunun üzerinde çalıştığı bağlantı noktası dışında yapılandırılması gereken bir bağlantı noktası gereksinimi yoktur.

  4. Hata ayıklamak istediğiniz işlemi bulun.

    Kodunuz benzersiz bir işlem adında veya dotnet adlı bir işlemde çalışır. İlgilendiğiniz işlemi bulmak için, işlemin komut satırı bağımsız değişkenlerini gösteren Başlık sütununu denetleyin.

    Aşağıdaki örnekte, İşleme Ekle iletişim kutusunda bir SSH aktarımı üzerinden uzak Linux makinesinden işlemlerin listesini görürsünüz.

    Linux'a Ekleme işleminin ekran görüntüsü.

    Linux'a Ekleme işleminin ekran görüntüsü.

  5. seçekle.

    Görüntülenen iletişim kutusunda, hata ayıklamak istediğiniz kod türünü seçin. Yönetilen (Unix için.NET Core) öğesini seçin.

  6. Uygulamada hata ayıklamak için Visual Studio hata ayıklama özelliklerini kullanın.

    Aşağıdaki örnekte, Visual Studio hata ayıklayıcısının uzak bir Linux makinesinde çalışan kodda kesme noktasında durdurulduğunu görürsünüz.

    Kesme noktasına vur'un ekran görüntüsü.

    Kesme noktasına vur'un ekran görüntüsü.