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şleme ek yok) bkz . Visual Studio ile WSL 2'de .NET Core Uygulamalarında Hata Ayıklama.

Dekont

Azure Kubernetes Service'te (AKS) çalışan Linux'ta hata ayıklamak için işleme eklemek yerine Kubernetes'e Köprü ö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.

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

Uygulamanızı hata ayıklamaya hazırlama

Uygulamanızı hata ayıklamaya hazırlamak için:

  • 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 çok daha zordur. Yayın yapılandırması kullanmanız gerekiyorsa, önce Yalnızca Kodum'un devre dışı bırakılmasını sağlayın. Bu ayarı devre dışı bırakmak için Araçlar>Seçenekler>Hata Ayıklama'yı seçin ve ardından Yalnızca Kodumu Etkinleştir'in seçimini kaldırın.
  • 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 Genel>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.

Uygulama derleme ve dağıtma

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

  • Kaynakları hedef bilgisayara kopyalayın ve Linux makinesinde ile oluşturun dotnet build .

  • 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ızdır.

  1. Visual Studio'da İşleme Ekleme Hatalarını Ayıkla>... seçeneğini belirleyin.

  2. Bağlan Ion Türü listesinde SSH'yi seçin.

  3. Bağlan ion Hedefini hedef bilgisayarın IP adresi veya ana bilgisayar adıyla değiştirin.

    Henüz kimlik bilgileri sağlamadıysanız parola ve/veya özel anahtar dosyası girmeniz istenir.

    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.

    Attach to Linux process

  5. Ekle'yi seçin.

  6. 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.

  7. 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.

    Hit a breakpoint