Mendebug aplikasi Service Fabric Anda dengan menggunakan Visual Studio

Mendebug aplikasi Service Fabric lokal

Penting

Penelusuran kesalahan jarak jauh tidak didukung pada VS 2022

Anda dapat menghemat waktu dan uang dengan menyebarkan dan mendebug aplikasi Azure Service Fabric Anda di kluster pengembangan komputer lokal. Visual Studio 2019 atau 2015 dapat menggunakan aplikasi ke kluster lokal dan secara otomatis menghubungkan debugger ke semua instans aplikasi Anda. Visual Studio harus dijalankan sebagai Administrator untuk menyambungkan debugger.

  1. Mulai kluster pengembangan lokal dengan mengikuti langkah-langkah di Menyiapkan lingkungan pengembangan Service Fabric.

  2. Tekan F5 atau klik Debug>Mulai Mendebug.

    Cuplikan layar yang memperlihatkan menu Debug.

  3. Atur titik henti di kode Anda dan lakukan di aplikasi dengan mengklik perintah di menu Debug.

    Catatan

    Visual Studio terlampir ke semua instans aplikasi Anda. Saat Anda melangkah melalui kode, titik henti mungkin terkena beberapa proses yang menghasilkan sesi bersamaan. Coba nonaktifkan titik henti setelah terhalang, dengan membuat setiap titik henti bersyarat pada ID thread atau dengan menggunakan peristiwa diagnostik.

  4. Jendela Peristiwa Diagnostik akan terbuka secara otomatis agar Anda dapat melihat peristiwa diagnostik secara realtime.

    Melihat peristiwa diagnostik secara realtime

  5. Anda juga dapat membuka jendela Peristiwa Diagnostik di Cloud Explorer. Pada Service Fabric, klik kanan node apa pun dan pilih Tampilkan Streaming Trace.

    Membuka jendela peristiwa diagnostik

    Jika Anda ingin memfilter jejak Anda ke layanan atau aplikasi tertentu, aktifkan streaming jejak pada layanan atau aplikasi tertentu tersebut.

  6. Peristiwa diagnostik dapat dilihat dalam file ServiceEventSource.cs yang dibuat secara otomatis dan dipanggil dari kode aplikasi.

    ServiceEventSource.Current.ServiceMessage(this, "My ServiceMessage with a parameter {0}", result.Value.ToString());
    
  7. Jendela Peristiwa Diagnostik mendukung pemfilteran, jeda, dan pemeriksaan peristiwa secara realtime. Filter adalah pencarian string sederhana dari pesan peristiwa, termasuk kontennya.

    Memfilter, menjeda, dan melanjutkan, atau memeriksa peristiwa secara realtime

  8. Layanan debugging seperti mendebug aplikasi lain. Anda biasanya akan mengatur Breakpoint melalui Visual Studio agar mudah didebug. Meskipun Reliable Collection mereplikasi di beberapa node, namun masih menerapkan IEnumerable. Implementasi ini berarti Anda dapat menggunakan Tampilan Hasil di Visual Studio saat Anda melakukan debug untuk melihat apa yang telah Anda simpan di dalamnya. Untuk melakukannya, atur breakpoint di mana saja dalam kode Anda.

    Mulai mendebug aplikasi

Menjalankan skrip sebagai bagian dari debugging

Dalam skenario tertentu, Anda mungkin perlu menjalankan skrip sebagai bagian dari memulai sesi debugging (misalnya saat tidak menggunakan Layanan Default).

Di Visual Studio, Anda dapat menambahkan file yang disebut Start-Service.ps1 di folder Skrip proyek Aplikasi Service Fabric (.sfproj). Skrip ini akan dipanggil setelah aplikasi dibuat di kluster lokal.

Mendebug aplikasi Service Fabric jarak jauh

Jika aplikasi Service Fabric Anda berjalan pada kluster Service Fabric di Azure, Anda dapat mendebug aplikasi ini dari jarak jauh, langsung dari Visual Studio.

Catatan

Fitur ini memerlukan Service Fabric SDK 2.0 dan Azure SDK for .NET 2.9.

Peringatan

Debugging jarak jauh dimaksudkan untuk skenario dev/test dan tidak digunakan di lingkungan produksi, karena dampak pada aplikasi yang sedang berjalan.

  1. Buka kluster Anda di Cloud Explorer. Klik kanan dan pilih Aktifkan Debugging

    Mengaktifkan debugging jarak jauh

    Tindakan ini akan memulai proses mengaktifkan ekstensi debugging jarak jauh pada node kluster Anda dan konfigurasi jaringan yang diperlukan.

  2. Klik kanan node kluster di Cloud Explorer, dan pilih Lampirkan Debugger

    Melampirkan debugger

  3. Dalam dialog Lampirkan ke proses, pilih proses yang ingin Anda debug, dan klik Lampirkan

    Memilih proses

    Nama proses yang ingin Anda lampirkan, sama dengan nama assembly proyek layanan Anda.

    Debugger akan melampirkan ke semua node yang menjalankan proses.

    • Dalam kasus ketika Anda mendebug layanan stateless, semua instans layanan pada semua node adalah bagian dari sesi debug.

    • Jika Anda mendebug layanan yang stateful, hanya replika utama partisi yang akan aktif dan karenanya tertangkap oleh debugger. Jika replika utama bergerak selama sesi debug, pemrosesan replika tersebut masih akan menjadi bagian dari sesi debug.

    • Untuk hanya menangkap partisi atau instans yang relevan dari layanan tertentu, Anda dapat menggunakan titik henti bersyarat untuk hanya memecahkan partisi atau instans tertentu.

      Titik henti bersyarat

      Catatan

      Saat ini kami tidak mendukung debugging kluster Service Fabric dengan beberapa instans dengan nama executable layanan yang sama.

  4. Setelah selesai mendebug aplikasi, Anda dapat menonaktifkan ekstensi debugging jarak jauh dengan mengklik kanan kluster di Cloud Explorer dan memilih Nonaktifkan Debugging

    Menonaktifkan debugging jarak jauh

Streaming trace dari node kluster jarak jauh

Anda juga dapat melakukan stream trace langsung dari node kluster jarak jauh ke Visual Studio. Fitur ini memungkinkan Anda melakukan streaming peristiwa trace ETW, yang diproduksi pada node kluster Service Fabric.

Catatan

Fitur ini memerlukan Service Fabric SDK 2.0 dan Azure SDK for .NET 2.9. Fitur ini hanya mendukung kluster yang berjalan di Azure.

Peringatan

Streaming trace dimaksudkan untuk skenario dev/test dan tidak digunakan di lingkungan produksi, karena dampak pada aplikasi yang sedang berjalan. Dalam skenario produksi, Anda harus mengandalkan penerusan peristiwa menggunakan Azure Diagnostics.

  1. Buka kluster Anda di Cloud Explorer. Klik kanan dan pilih Aktifkan Streaming Trace

    Fungsikan streaming trace jarak jauh

    Tindakan ini akan memulai proses mengaktifkan ekstensi streaming trace pada node kluster Anda, serta konfigurasi jaringan yang diperlukan.

  2. Perluas elemen Node di Cloud Explorer, klik kanan node yang ingin Anda streaming jejaknya dan pilih Lihat Streaming Trace

    Lihat streaming trace jarak jauh

    Ulangi langkah 2 untuk node sebanyak yang Anda inginkan untuk melihat trace dari. Setiap aliran node akan muncul di jendela khusus.

    Anda sekarang dapat melihat trace yang dihasilkan oleh Service Fabric, dan layanan Anda. Jika Anda ingin memfilter peristiwa untuk hanya menampilkan aplikasi tertentu, cukup ketik nama aplikasi di filter.

    Melihat streaming trace

  3. Setelah selesai streaming jejak dari kluster, Anda dapat menonaktifkan streaming trace jarak jauh, dengan mengklik kanan kluster di Cloud Explorer dan memilih Nonaktifkan Jejak Streaming

    Menonaktifkan streaming trace jarak jauh

Langkah berikutnya