Cara: Debug kontainer Windows di Azure Service Fabric menggunakan Visual Studio 2019
Dengan Visual Studio 2019, Anda dapat melakukan debug aplikasi .NET dalam kontainer sebagai layanan Service Fabric. Artikel ini memperlihatkan kepada Anda cara mengonfigurasi lingkungan Anda lalu melakukan debug aplikasi .NET dalam kontainer yang berjalan di kluster Service Fabric lokal.
Prasyarat
- Pada Windows 10, ikuti mulai cepat untuk Mengonfigurasi Windows 10 untuk menjalankan kontainer Windows
- Pada Windows Server 2016, ikuti mulai cepat ini untuk Mengonfigurasi Windows 2016 untuk menjalankan kontainer Windows
- Siapkan lingkungan Service Fabric lokal Anda dengan mengikuti Siapkan lingkungan pengembangan Anda di Windows
Mengonfigurasi lingkungan pengembang Anda untuk melakukan debug kontainer
Pastikan layanan Docker for Window berjalan sebelum melanjutkan langkah berikutnya.
Untuk mendukung resolusi DNS antar kontainer, Anda harus menyiapkan kluster pengembangan lokal, menggunakan nama komputer. Langkah-langkah ini juga diperlukan jika Anda ingin mengatasi layanan melalui proksi terbalik.
Buka PowerShell sebagai Administrator Windows
Navigasi ke folder penyiapan Kluster SDK, biasanya
C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup
.Jalankan skrip
DevClusterSetup.ps1
C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1
Catatan
Anda dapat menggunakan
-CreateOneNodeCluster
untuk menyiapkan kluster satu node. Default akan membuat kluster lima node lokal.Untuk mempelajari selengkapnya tentang Layanan DNS dalam Service Fabric, lihat Layanan DNS pada Azure Service Fabric. Untuk mempelajari selengkapnya tentang menggunakan proksi terbalik Service Fabric dari layanan yang berjalan dalam kontainer, lihat Proksi terbalik penanganan khusus untuk layanan yang berjalan dalam kontainer.
Keterbatasan yang diketahui saat melakukan debug kontainer di Service Fabric
Di bawah ini adalah daftar batasan yang diketahui dengan melakukan debug kontainer di Service Fabric dan resolusi yang memungkinkan:
- Menggunakan localhost untuk ClusterFQDNorIP tidak akan mendukung resolusi DNS dalam kontainer.
- Resolusi: Mengatur kluster lokal menggunakan nama komputer (lihat di atas)
- Menjalankan Windows10 di Virtual Machine tidak akan mendapatkan balasan DNS kembali ke kontainer.
- Resolusi: Nonaktifkan offload checksum UDP untuk IPv4 pada Virtual Machine NIC
- Menjalankan Windows10 akan menurunkan kinerja jaringan pada komputer.
- https://github.com/Azure/service-fabric-issues/issues/1061
- Mengatasi layanan dalam aplikasi yang sama menggunakan nama layanan DNS tidak berfungsi pada Windows10, jika aplikasi yang disebarkan menggunakan Docker Compose
- Resolusi: Gunakan servicename.applicationname untuk mengatasi titik akhir layanan
- https://github.com/Azure/service-fabric-issues/issues/1062
- Jika menggunakan alamat IP untuk ClusterFQDNorIP, mengubah IP utama pada host akan merusak fungsionalitas DNS.
- Resolusi: Buat ulang kluster menggunakan IP utama baru pada host atau gunakan nama komputer. Kerusakan ini memang disengaja.
- Jika FQDN kluster dibuat dengan tidak dapat diselesaikan di jaringan, DNS akan gagal.
- Resolusi: Buat ulang kluster lokal menggunakan IP utama host. Kerusakan ini memang disengaja.
- Saat men-debug kontainer, penguncian docker hanya akan tersedia di jendela output Visual Studio, bukan melalui API Service Fabric, termasuk Service Fabric Explorer
Melakukan debug aplikasi .NET yang berjalan dalam kontainer docker pada Service Fabric
Buka Visual Studio sebagai administrator.
Buka aplikasi .NET yang sudah ada atau buat aplikasi baru.
Klik kanan proyek dan pilih Tambahkan -> Dukungan Orkestrator Kontainer -> Service Fabric
Tekan F5 untuk memulai debug aplikasi.
Visual Studio mendukung jenis proyek ASP.NET dan konsol untuk .NET dan .NET Core.
Langkah berikutnya
Untuk mempelajari lebih lanjut tentang kemampuan Service Fabric dan kontainer, lihat Gambaran umum kontainer Service Fabric.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk