Bagikan melalui


Mulai menggunakan topik dan langganan Azure Service Bus (.NET)

Panduan mulai cepat ini menunjukkan cara mengirim pesan ke topik Azure Service Bus dan menerima pesan dari langganan ke topik tersebut menggunakan pustaka .NET Azure.Messaging.ServiceBus.

Di tutorial mulai cepat ini, Anda akan melakukan langkah-langkah berikut:

  1. Membuat namespace Azure Service Bus menggunakan portal Microsoft Azure.
  2. Buat topik Bus Layanan, menggunakan portal Microsoft Azure.
  3. Buat langganan Bus Layanan untuk topik tersebut, menggunakan portal Microsoft Azure.
  4. Tulis aplikasi konsol .NET untuk mengirim sekumpulan pesan ke topik tersebut.
  5. Tulis aplikasi konsol .NET untuk menerima pesan tersebut dari langganan.

Catatan

Mulai cepat ini memberikan petunjuk langkah demi langkah untuk menerapkan skenario sederhana pengiriman kumpulan pesan ke topik Bus Layanan dan menerima pesan tersebut dari langganan topik. Untuk sampel lainnya pada skenario lain dan lanjutan, lihat sampel Azure Service Bus .NET di GitHub.

  • Mulai cepat ini menunjukkan kepada Anda dua cara menyambungkan ke Azure Bus Layanan: string koneksi dan tanpa kata sandi. Opsi pertama memperlihatkan kepada Anda cara menggunakan string koneksi untuk menyambungkan ke namespace Bus Layanan. Opsi kedua menunjukkan kepada Anda cara menggunakan prinsip keamanan Anda di ID Microsoft Entra dan kontrol akses berbasis peran (RBAC) untuk menyambungkan ke namespace Bus Layanan. Anda tidak perlu khawatir tentang memiliki string koneksi yang dikodekan secara permanen dalam kode Anda atau dalam file konfigurasi atau di penyimpanan aman seperti Azure Key Vault. Jika Anda baru menggunakan Azure, Anda mungkin menemukan opsi string koneksi lebih mudah diikuti. Sebaiknya gunakan opsi tanpa kata sandi di aplikasi dunia nyata dan lingkungan produksi. Untuk informasi selengkapnya, lihat Autentikasi dan otorisasi.

Prasyarat

Jika Anda baru menggunakan layanan ini, lihat Gambaran umum Azure Service Bus sebelum melakukan mulai cepat ini.

  • Langganan Azure. Untuk menggunakan layanan Azure, termasuk Azure Service Bus, Anda memerlukan langganan. Jika Anda tidak memiliki akun Azure yang sudah ada, Anda dapat mendaftar untuk coba gratis.
  • Visual Studio 2022. Aplikasi sampel menggunakan fitur baru yang diperkenalkan di C# 10. Anda masih dapat menggunakan pustaka klien Bus Layanan dengan versi bahasa C# sebelumnya, tetapi sintaksnya mungkin bervariasi. Untuk menggunakan sintaks terbaru, kami sarankan Anda menginstal .NET 6.0, atau yang lebih tinggi dan mengatur versi bahasa ke latest. Jika Anda menggunakan Visual Studio, versi sebelum Visual Studio 2022 tidak kompatibel dengan alat yang diperlukan untuk membangun proyek C# 10.

Membuat namespace layanan di portal Microsoft Azure

Untuk mulai menggunakan entitas Olahpesan Azure Service Bus di Azure, Anda harus terlebih dahulu membuat namespace layanan dengan nama yang unik di Azure. Namespace menyediakan kontainer cakupan untuk sumber daya Bus Layanan (antrean, topik, dll.) dalam aplikasi Anda.

Untuk membuat namespace layanan:

  1. Masuk ke portal Azure.

  2. Navigasi ke halaman Semua layanan.

  3. Di bilah navigasi kiri, pilih Integrasi dari daftar kategori, arahkan mouse ke atas Bus Layanan, lalu pilih + tombol pada petak peta Bus Layanan.

    Gambar yang memperlihatkan pilihan Buat sumber daya, Integrasi, lalu Azure Service Bus di menu.

  4. Di tag Dasar-Dasar pada halaman Buat kumpulan nama, ikuti langkah-langkah berikut:

    1. Untuk Langganan, pilih langganan Azure untuk membuat namespace layanan.

    2. Untuk Grup sumber daya, pilih grup sumber daya yang sudah ada tempat namespace layanan akan aktif, atau buat grup baru.

    3. Masukkan nama untuk kumpulan nama. Nama namespace harus mematuhi konvensi penamaan berikut:

      • Nama yang Anda pilih harus unik di seluruh Azure. Sistem akan segera memeriksa untuk melihat apakah nama tersebut tersedia.
      • Panjang nama minimal 6 dan maksimal 50 karakter.
      • Nama hanya boleh berisi huruf, angka, tanda hubung “-“.
      • Nama harus dimulai dengan huruf dan diakhiri dengan huruf atau angka.
      • Nama tidak diakhiri dengan “-sb“ atau “-mgmt“.
    4. Untuk Lokasi, pilih wilayah tempat namespace layanan Anda akan dihosting.

    5. Untuk Tingkat harga, pilih tingkat harga (Dasar, Standar, atau Premium) untuk kumpulan namanya. Untuk mulai cepat ini, pilih Standar.

      Penting

      Jika Anda ingin menggunakan topik dan langganan, pilih Standar atau Premium. Topik/langganan tidak didukung di tingkat harga Dasar.

      Jika Anda memilih tingkat harga Premium, tentukan jumlah unit olahpesan. Tingkat premium menyediakan isolasi sumber daya di tingkat CPU dan memori sehingga setiap beban kerja berjalan dalam isolasi. Kontainer sumber daya ini disebut unit Olahpesan. Namespace layanan premium memiliki setidaknya satu unit Olahpesan. Anda dapat membeli 1, 2, 4, 8, atau 16 unit Olahpesan untuk setiap namespace layanan Service Bus Premium. Untuk mengetahui informasi selengkapnya, lihat Olahpesan Premium Azure Service Bus.

    6. Pilih Tinjau + buat di bagian bawah halaman.

      Gambar yang memperlihatkan halaman Buat kumpulan nama

    7. Pada halaman Tinjau + buat, tinjau pengaturan, dan pilih Buat.

  5. Setelah penyebaran sumber daya berhasil, pilih Buka sumber daya di halaman penyebaran.

    Gambar yang memperlihatkan halaman penyebaran yang berhasil dengan tautan Buka sumber daya.

  6. Anda melihat beranda untuk namespace layanan bus layanan Anda.

    Gambar yang memperlihatkan halaman beranda kumpulan nama Azure Service Bus yang dibuat.

Membuat topik menggunakan portal Microsoft Azure

  1. Di halaman Namespace Bus Layanan, pilih Topik di menu sebelah kiri.

  2. Pilih + Topik di toolbar.

  3. Masukkan nama untuk topik. Biarkan opsi lain dengan nilai defaultnya.

  4. Pilih Buat.

    Gambar menampilkan halaman Buat topik.

Membuat langganan untuk topik tersebut

  1. Pilih topik yang Anda buat di sesi sebelumnya.

    Gambar menampilkan pilihan topik dari daftar topik.

  2. Di halaman Topik Bus Layanan, pilih + Langganan di bar alat.

    Gambar menampilkan tombol Tambahkan langganan.

  3. Di halaman Membuat Langganan, ikuti langkah-langkah berikut:

    1. Masukkan S1 untuk nama langganan.

    2. Masukkan 3 untuk jumlah pengiriman Maks.

    3. Lalu, pilih Buat untuk membuat langganan.

      Gambar menampilkan halaman Buat langganan.

Mengautentikasi aplikasi ke Azure

Mulai cepat ini menunjukkan kepada Anda dua cara menyambungkan ke Azure Bus Layanan: tanpa kata sandi dan string koneksi.

Opsi pertama menunjukkan kepada Anda cara menggunakan prinsip keamanan Anda di ID Microsoft Entra dan kontrol akses berbasis peran (RBAC) untuk menyambungkan ke namespace Bus Layanan. Anda tidak perlu khawatir memiliki string koneksi yang dikodekan secara permanen dalam kode Anda atau dalam file konfigurasi atau dalam penyimpanan aman seperti Azure Key Vault.

Opsi kedua menunjukkan cara menggunakan string koneksi untuk menyambungkan ke namespace Bus Layanan. Jika Anda baru menggunakan Azure, Anda mungkin menemukan opsi string koneksi lebih mudah diikuti. Sebaiknya gunakan opsi tanpa kata sandi di aplikasi dunia nyata dan lingkungan produksi. Untuk informasi selengkapnya, lihat Autentikasi dan otorisasi. Anda juga dapat membaca selengkapnya tentang autentikasi tanpa kata sandi di halaman gambaran umum.

Menetapkan peran ke pengguna Microsoft Entra Anda

Saat mengembangkan secara lokal, pastikan bahwa akun pengguna yang tersambung ke Azure Bus Layanan memiliki izin yang benar. Anda memerlukan peran Pemilik Data azure Bus Layanan untuk mengirim dan menerima pesan. Untuk menetapkan sendiri peran ini, Anda memerlukan peran Administrator Akses Pengguna, atau peran lain yang menyertakan tindakan.Microsoft.Authorization/roleAssignments/write Anda dapat menetapkan peran Azure RBAC kepada pengguna menggunakan portal Azure, Azure CLI, atau Azure PowerShell. Pelajari selengkapnya tentang cakupan yang tersedia untuk penetapan peran di halaman gambaran umum cakupan .

Contoh berikut menetapkan peran ke Azure Service Bus Data Owner akun pengguna Anda, yang menyediakan akses penuh ke sumber daya Azure Bus Layanan. Dalam skenario nyata, ikuti Prinsip Hak Istimewa Paling Sedikit untuk memberi pengguna hanya izin minimum yang diperlukan untuk lingkungan produksi yang lebih aman.

Peran bawaan untuk Azure Service Bus

Untuk Azure Service Bus, pengelolaan namespace dan semua sumber daya terkait melalui portal Microsoft Azure dan AZURE Resource Management API sudah dilindungi menggunakan model Azure RBAC. Azure menyediakan peran bawaan Azure di bawah ini untuk mengotorisasi akses ke namespace Microsoft Azure Service Bus:

  • Pemilik Data Azure Bus Layanan: Memungkinkan akses data ke namespace Bus Layanan dan entitasnya (antrean, topik, langganan, dan filter). Anggota peran ini dapat mengirim dan menerima pesan dari antrean atau topik/langganan.
  • Pengirim Data Azure Bus Layanan: Gunakan peran ini untuk memberikan akses pengiriman ke namespace Bus Layanan dan entitasnya.
  • Azure Bus Layanan Data Receiver: Gunakan peran ini untuk memberikan akses terima ke namespace Bus Layanan dan entitasnya.

Jika Anda ingin membuat peran kustom, lihat Hak yang diperlukan untuk operasi Bus Layanan.

Menambahkan pengguna Microsoft Entra ke peran Pemilik Bus Layanan Azure

Tambahkan nama pengguna Microsoft Entra Anda ke peran Pemilik Data Azure Bus Layanan di tingkat namespace Bus Layanan. Ini akan memungkinkan aplikasi yang berjalan dalam konteks akun pengguna Anda untuk mengirim pesan ke antrean atau topik, dan menerima pesan dari antrean atau langganan topik.

Penting

Dalam kebanyakan kasus, akan memakan waktu satu atau dua menit agar penetapan peran disebarluaskan di Azure. Dalam kasus yang jarang terjadi, mungkin perlu waktu hingga delapan menit. Jika Anda menerima kesalahan autentikasi saat pertama kali menjalankan kode, tunggu beberapa saat dan coba lagi.

  1. Jika Anda tidak membuka halaman Bus Layanan Namespace layanan di portal Azure, temukan namespace Bus Layanan Anda menggunakan bilah pencarian utama atau navigasi kiri.

  2. Pada halaman gambaran umum, pilih Kontrol akses (IAM) dari menu sebelah kiri.

  3. Di halaman Kontrol akses (IAM), pilih tab Penetapan peran.

  4. Pilih + Tambahkan dari menu atas lalu Tambahkan penetapan peran dari menu drop-down yang dihasilkan.

    Cuplikan layar yang menampilkan cara menetapkan peran.

  5. Gunakan kotak pencarian untuk memfilter hasil ke peran yang diinginkan. Untuk contoh ini, cari Azure Service Bus Data Owner dan pilih hasil yang cocok. Kemudian pilih Berikutnya.

  6. Di bagian Tetapkan akses ke, pilih Pengguna, grup, atau perwakilan layanan, lalu pilih + Pilih anggota.

  7. Dalam dialog, cari nama pengguna Microsoft Entra Anda (biasanya alamat email user@domain Anda) lalu pilih Pilih di bagian bawah dialog.

  8. Pilih Tinjau + tetapkan untuk masuk ke halaman akhir, lalu Tinjau + tetapkan lagi untuk menyelesaikan proses.

Luncurkan Visual Studio dan masuk ke Azure

Anda dapat mengotorisasi akses ke namespace bus layanan menggunakan langkah-langkah berikut:

  1. Luncurkan Visual Studio. Jika Anda melihat jendela Mulai , pilih tautan Lanjutkan tanpa kode di panel kanan.

  2. Pilih tombol Masuk di kanan atas Visual Studio.

    Cuplikan layar yang menunjukkan tombol untuk masuk ke Azure menggunakan Visual Studio.

  3. Masuk menggunakan akun Microsoft Entra yang Anda tetapkan perannya sebelumnya.

    Cuplikan layar yang menampilkan pemilihan akun.

Kirim pesan ke topik tersebut

Bagian ini menunjukkan kepada Anda cara membuat aplikasi konsol .NET untuk mengirim pesan ke topik Bus Layanan.

Catatan

Mulai cepat ini memberikan petunjuk langkah demi langkah untuk menerapkan skenario sederhana pengiriman kumpulan pesan ke topik Bus Layanan dan menerima pesan tersebut dari langganan topik. Untuk sampel lainnya pada skenario lain dan lanjutan, lihat sampel Azure Service Bus .NET di GitHub.

Membuat aplikasi konsol lokal

  1. Di Visual Studio, pilih Menu File ->Baru ->Proyek .
  2. Pada kotak dialog Buat proyek baru, lakukan langkah-langkah berikut ini: Jika Anda tidak melihat kotak dialog ini, pilih File pada menu, pilih Baru, lalu pilih Proyek.
    1. Untuk C# untuk bahasa pemrograman.

    2. Pilih Konsol untuk jenis aplikasi.

    3. Pilih Aplikasi Konsol dari daftar hasil.

    4. Kemudian, pilih Berikutnya.

      Gambar yang menunjukkan kotak dialog Buat proyek baru dengan C# dan Konsol dipilih

  3. Masukkan TopicSender untuk nama proyek, ServiceBusTopicQuickStart untuk nama solusi, lalu pilih Berikutnya.
  4. Pada halaman Informasi tambahan, pilih Buat untuk membuat solusi dan proyek.

Menambahkan paket NuGet ke proyek

  1. Pilih Alat>NuGet Package Manager>Package Manager Console dari menu.

  2. Jalankan perintah berikut untuk menginstal paket NuGet Azure.Messaging.ServiceBus .

    Install-Package Azure.Messaging.ServiceBus
    
  3. Jalankan perintah berikut untuk menginstal paket Azure.Identity NuGet.

    Install-Package Azure.Identity
    

Menambahkan kode untuk mengirim pesan ke topik

  1. Ganti konten Program.cs dengan kode berikut. Langkah-langkah penting diuraikan di bagian ini, dengan informasi tambahan dalam komentar kode.

    1. Membuat objek ServiceBusClient menggunakan DefaultAzureCredential objek . DefaultAzureCredentialsecara otomatis menemukan dan menggunakan kredensial masuk Visual Studio Anda untuk mengautentikasi ke Azure Bus Layanan.
    2. Memanggil metode CreateSender pada objek ServiceBusClient untuk membuat objek ServiceBusSender untuk topik Azure Service Bus yang ditentukan.
    3. Membuat objek ServiceBusMessageBatch menggunakan ServiceBusSender.CreateMessageBatchAsync.
    4. Tambahkan pesan ke batch menggunakan ServiceBusMessageBatch.TryAddMessage.
    5. Mengirim batch pesan ke topik Bus Layanan menggunakan metode ServiceBusSender.SendMessagesAsync.

    Penting

    Perbarui nilai tempat penampung (<NAMESPACE-NAME> dan <TOPIC-NAME>) dalam cuplikan kode dengan nama namespace dan topik Bus Layanan Anda.

    using System.Threading.Tasks;
    using Azure.Messaging.ServiceBus;
    using Azure.Identity;
    
    // the client that owns the connection and can be used to create senders and receivers
    ServiceBusClient client;
    
    // the sender used to publish messages to the topic
    ServiceBusSender sender;
    
    // number of messages to be sent to the topic
    const int numOfMessages = 3;
    
    // The Service Bus client types are safe to cache and use as a singleton for the lifetime
    // of the application, which is best practice when messages are being published or read
    // regularly.
    
    //TODO: Replace the "<NAMESPACE-NAME>" and "<TOPIC-NAME>" placeholders.
    client = new ServiceBusClient(
        "<NAMESPACE-NAME>.servicebus.windows.net",
        new DefaultAzureCredential());
    sender = client.CreateSender("<TOPIC-NAME>");
    
    // create a batch 
    using ServiceBusMessageBatch messageBatch = await sender.CreateMessageBatchAsync();
    
    for (int i = 1; i <= numOfMessages; i++)
    {
        // try adding a message to the batch
        if (!messageBatch.TryAddMessage(new ServiceBusMessage($"Message {i}")))
        {
            // if it is too large for the batch
            throw new Exception($"The message {i} is too large to fit in the batch.");
        }
    }
    
    try
    {
        // Use the producer client to send the batch of messages to the Service Bus topic
        await sender.SendMessagesAsync(messageBatch);
        Console.WriteLine($"A batch of {numOfMessages} messages has been published to the topic.");
    }
    finally
    {
        // Calling DisposeAsync on client types is required to ensure that network
        // resources and other unmanaged objects are properly cleaned up.
        await sender.DisposeAsync();
        await client.DisposeAsync();
    }
    
    Console.WriteLine("Press any key to end the application");
    Console.ReadKey();
    
  2. Bangun program, dan pastikan tidak ada kesalahan.

  3. Jalankan program dan tunggu pesan konfirmasi.

    A batch of 3 messages has been published to the topic
    

    Penting

    Dalam kebanyakan kasus, akan memakan waktu satu atau dua menit agar penetapan peran disebarluaskan di Azure. Dalam kasus yang jarang terjadi, mungkin perlu waktu hingga delapan menit. Jika Anda menerima kesalahan autentikasi saat pertama kali menjalankan kode, tunggu beberapa saat dan coba lagi.

  4. Di portal Microsoft Azure, ikuti langkah-langkah berikut:

    1. Buka namespace Bus Layanan Anda.

    2. Di halaman Gambaran Umum, di panel tengah bawah, beralih ke tab Topik, dan pilih topik Bus Layanan. Dalam contoh berikut, itu adalah mytopic.

      Memilih topik

    3. Di halaman Topik Bus Layanan, Di bagan Pesan di bawah bagian Metrik, Anda bisa melihat ada tiga pesan masuk untuk topik. Jika Anda tidak melihat nilainya, tunggu beberapa menit, dan refresh halaman untuk melihat bagan yang diperbarui.

      Pesan yang dikirim ke topik

    4. Pilih langganan di panel bawah. Dalam contoh berikut, itu adalah S1. Di halaman Langganan Bus Layanan, Anda akan melihat Jumlah pesan aktif sebanyak 3. Langganan telah menerima tiga pesan yang Anda kirim ke topik tersebut, tetapi belum ada penerima yang mengambilnya.

      Pesan yang diterima di langganan

Menerima pesan dari langganan

Di bagian ini, Anda membuat aplikasi konsol .NET yang menerima pesan dari langganan ke topik Bus Layanan.

Catatan

Mulai cepat ini memberikan petunjuk langkah demi langkah untuk menerapkan skenario sederhana pengiriman kumpulan pesan ke topik Bus Layanan dan menerima pesan tersebut dari langganan topik. Untuk sampel lainnya pada skenario lain dan lanjutan, lihat sampel Azure Service Bus .NET di GitHub.

Membuat proyek untuk penerima

  1. Di jendela Penjelajah Solusi, klik kanan solusi ServiceBusTopicQuickStart, arahkan ke Tambahkan, lalu pilih Proyek Baru.
  2. Pilih Aplikasi konsol, lalu pilih Selanjutnya.
  3. Masukkan SubscriptionReceiver untuk Nama proyek, dan pilih Berikutnya.
  4. Di halaman Informasi tambahan, pilih Buat.
  5. Di jendela Penjelajah Solusi, klik kanan SubscriptionReceiver, lalu pilih Atur sebagai Proyek Startup.

Menambahkan paket NuGet ke proyek

  1. Pilih Alat>NuGet Package Manager>Package Manager Console dari menu.

  2. Pilih SubscriptionReceiver untuk daftar drop-down Proyek default.

  3. Jalankan perintah berikut untuk menginstal paket NuGet Azure.Messaging.ServiceBus .

    Install-Package Azure.Messaging.ServiceBus
    
  4. Jalankan perintah berikut untuk menginstal paket Azure.Identity NuGet.

    Install-Package Azure.Identity
    

Tambahkan kode untuk menerima pesan dari langganan

Di bagian ini, Anda menambahkan kode untuk mengambil pesan dari langganan.

  1. Ganti konten Program.cs yang ada dengan properti dan metode berikut:

    using System.Threading.Tasks;
    using Azure.Messaging.ServiceBus;
    using Azure.Identity;
    
    // the client that owns the connection and can be used to create senders and receivers
    ServiceBusClient client;
    
    // the processor that reads and processes messages from the subscription
    ServiceBusProcessor processor;    
    
    // handle received messages
    async Task MessageHandler(ProcessMessageEventArgs args)
    {
        string body = args.Message.Body.ToString();
        Console.WriteLine($"Received: {body} from subscription.");
    
        // complete the message. messages is deleted from the subscription. 
        await args.CompleteMessageAsync(args.Message);
    }
    
    // handle any errors when receiving messages
    Task ErrorHandler(ProcessErrorEventArgs args)
    {
        Console.WriteLine(args.Exception.ToString());
        return Task.CompletedTask;
    }
    
  2. Tambahkan kode berikut ke akhir Program.cs.

    Penting

    Perbarui nilai tempat penampung (<NAMESPACE-NAME>, <TOPIC-NAME>, <SUBSCRIPTION-NAME>) dalam cuplikan kode dengan nama namespace Bus Layanan, topik, dan langganan Anda.

    Untuk informasi selengkapnya, lihat komentar kode.

    // The Service Bus client types are safe to cache and use as a singleton for the lifetime
    // of the application, which is best practice when messages are being published or read
    // regularly.
    //
    // Create the clients that we'll use for sending and processing messages.
    // TODO: Replace the <NAMESPACE-NAME> placeholder
    client = new ServiceBusClient(
        "<NAMESPACE-NAME>.servicebus.windows.net",
        new DefaultAzureCredential());
    
    // create a processor that we can use to process the messages
    // TODO: Replace the <TOPIC-NAME> and <SUBSCRIPTION-NAME> placeholders
    processor = client.CreateProcessor("<TOPIC-NAME>", "<SUBSCRIPTION-NAME>", new ServiceBusProcessorOptions());
    
    try
    {
        // add handler to process messages
        processor.ProcessMessageAsync += MessageHandler;
    
        // add handler to process any errors
        processor.ProcessErrorAsync += ErrorHandler;
    
        // start processing 
        await processor.StartProcessingAsync();
    
        Console.WriteLine("Wait for a minute and then press any key to end the processing");
        Console.ReadKey();
    
        // stop processing 
        Console.WriteLine("\nStopping the receiver...");
        await processor.StopProcessingAsync();
        Console.WriteLine("Stopped receiving messages");
    }
    finally
    {
        // Calling DisposeAsync on client types is required to ensure that network
        // resources and other unmanaged objects are properly cleaned up.
        await processor.DisposeAsync();
        await client.DisposeAsync();
    }
    
  3. Berikut adalah bagaimana Program.cs Anda akan terlihat:

    using System;
    using System.Threading.Tasks;
    using Azure.Messaging.ServiceBus;
    using Azure.Identity;
    
    // the client that owns the connection and can be used to create senders and receivers
    ServiceBusClient client;
    
    // the processor that reads and processes messages from the subscription
    ServiceBusProcessor processor;
    
    // handle received messages
    async Task MessageHandler(ProcessMessageEventArgs args)
    {
        string body = args.Message.Body.ToString();
        Console.WriteLine($"Received: {body} from subscription.");
    
        // complete the message. messages is deleted from the subscription. 
        await args.CompleteMessageAsync(args.Message);
    }
    
    // handle any errors when receiving messages
    Task ErrorHandler(ProcessErrorEventArgs args)
    {
        Console.WriteLine(args.Exception.ToString());
        return Task.CompletedTask;
    }
    
    // The Service Bus client types are safe to cache and use as a singleton for the lifetime
    // of the application, which is best practice when messages are being published or read
    // regularly.
    //
    // Create the clients that we'll use for sending and processing messages.
    // TODO: Replace the <NAMESPACE-NAME> placeholder
    client = new ServiceBusClient(
        "<NAMESPACE-NAME>.servicebus.windows.net",
        new DefaultAzureCredential());
    
    // create a processor that we can use to process the messages
    // TODO: Replace the <TOPIC-NAME> and <SUBSCRIPTION-NAME> placeholders
    processor = client.CreateProcessor("<TOPIC-NAME>", "<SUBSCRIPTION-NAME>", new ServiceBusProcessorOptions());
    
    try
    {
        // add handler to process messages
        processor.ProcessMessageAsync += MessageHandler;
    
        // add handler to process any errors
        processor.ProcessErrorAsync += ErrorHandler;
    
        // start processing 
        await processor.StartProcessingAsync();
    
        Console.WriteLine("Wait for a minute and then press any key to end the processing");
        Console.ReadKey();
    
        // stop processing 
        Console.WriteLine("\nStopping the receiver...");
        await processor.StopProcessingAsync();
        Console.WriteLine("Stopped receiving messages");
    }
    finally
    {
        // Calling DisposeAsync on client types is required to ensure that network
        // resources and other unmanaged objects are properly cleaned up.
        await processor.DisposeAsync();
        await client.DisposeAsync();
    }
    
  4. Bangun program, dan pastikan tidak ada kesalahan.

  5. Jalankan aplikasi penerima. Anda akan melihat pesan yang diterima. Tekan tombol apa pun untuk menghentikan penerima dan aplikasi.

    Wait for a minute and then press any key to end the processing
    Received: Message 1 from subscription: S1
    Received: Message 2 from subscription: S1
    Received: Message 3 from subscription: S1
    
    Stopping the receiver...
    Stopped receiving messages
    
  6. Periksa portal lagi.

    • Di halaman Topik Azure Service Bus, di bagan Pesan, Anda akan melihat tiga pesan masuk dan tiga pesan keluar. Jika Anda tidak melihat jumlah ini, tunggu beberapa menit, lalu refresh halaman untuk melihat bagan yang diperbarui.

      Pesan terkirim dan diterima

    • Di halaman Langganan Bus Layanan, Anda akan melihat Jumlah pesan aktif sejumlah nol. Itu karena penerima telah menerima pesan dari langganan ini dan menyelesaikan pesan.

      Jumlah pesan aktif di langganan pada akhirnya

Langkah berikutnya

Lihat dokumentasi dan sampel berikut: