Aracılığıyla paylaş


Hızlı Başlangıç: Azure Service Bus kuyruğundan (.NET) ileti gönderme ve alma

Bu hızlı başlangıçta aşağıdaki adımları uygulayacaksınız:

  1. Azure portalı ile Service Bus ad alanı oluşturma.

  2. Azure portalını kullanarak Service Bus kuyruğu oluşturma.

  3. Kuyruğa bir dizi ileti göndermek için bir .NET konsol uygulaması yazın.

  4. Kuyruktan bu iletileri almak için bir .NET konsol uygulaması yazın.

    Bu hızlı başlangıçta, Service Bus kuyruğuna toplu ileti göndermeye ve sonra bunları almaya yönelik basit bir senaryo uygulamaya yönelik adım adım yönergeler sağlanır. .NET istemci kitaplığına genel bakış için bkz . .NET için Azure Service Bus istemci kitaplığı. Daha fazla örnek için bkz . GitHub'da Service Bus .NET örnekleri.

Önkoşullar

Hizmette yeniyseniz, bu hızlı başlangıcı gerçekleştirmeden önce Service Bus'a genel bakış'a bkz.

  • Azure aboneliği. Azure Service Bus dahil olmak üzere Azure hizmetlerini kullanmak için bir aboneliğe ihtiyacınız vardır. Mevcut bir Azure hesabınız yoksa ücretsiz deneme sürümüne kaydolabilirsiniz.
  • Visual Studio 2022 veya üzeri. Örnek uygulama, C# 10'da tanıtılan yeni özellikleri kullanır. Service Bus istemci kitaplığını önceki C# dil sürümleriyle kullanmaya devam edebilirsiniz, ancak söz dizimi farklılık gösterebilir. En son söz dizimini kullanmak için .NET 6.0 veya üzerini yüklemenizi ve dil sürümünü olarak latestayarlamanızı öneririz. Visual Studio kullanıyorsanız, Visual Studio 2022 öncesi sürümler C# 10 projeleri oluşturmak için gereken araçlarla uyumlu değildir.

Azure portalında bir ad alanı oluşturma

Azure'da Service Bus mesajlaşma varlıklarını kullanmaya başlamak için Azure genelinde benzersiz bir ada sahip bir ad alanı oluşturun. Ad alanı, uygulamanızdaki kuyruklar ve başlıklar gibi Service Bus kaynakları için bir kapsam kapsayıcısı sağlar.

Ad alanı oluşturmak için:

  1. Azure Portal’ında oturum açın.

  2. Sol üst kısımdan açılır menüyü seçin ve Tüm hizmetler sayfasına gidin.

  3. Sol gezinti çubuğunda Tümleştirme'yi seçin.

  4. Aşağı kaydırarak Mesajlaşma hizmetleri'ne gelin, farenizi Service Bus'ın üzerine getirin ve oluştur'u seçin.

    Menüde Kaynak oluştur, Tümleştirme ve ardından Service Bus seçimini gösteren ekran görüntüsü.

  5. Ad alanı oluştur sayfasının Temel Bilgiler sekmesinde şu adımları izleyin:

    1. Abonelik için ad alanının oluşturulacağı bir Azure aboneliği seçin.

    2. Kaynak grubu için mevcut bir kaynak grubunu seçin veya yeni bir kaynak grubu oluşturun.

    3. Aşağıdaki adlandırma kurallarına uyan bir Ad Alanı adı girin:

      • Adın Azure genelinde benzersiz olması gerekir. Adın kullanılabilirliği sistem tarafından hemen denetlenir.
      • Ad uzunluğu en az 6 ve en fazla 50 karakterdir.
      • Ad yalnızca harf, sayı ve kısa çizgi -içerebilir.
      • Ad bir harfle başlamalı ve bir harf veya numarayla bitmelidir.
      • Ad -sb veya -mgmt ile bitmiyor.
    4. Konum için ad alanınızı barındıracak bölgeyi seçin.

    5. Fiyatlandırma katmanı için ad alanı için fiyatlandırma katmanını (Temel, Standart veya Premium) seçin. Bu hızlı başlangıç için Standart'ı seçin.

      Premium katmanını seçerseniz, ad alanı için coğrafi çoğaltmayı etkinleştirebilirsiniz. Coğrafi çoğaltma özelliği, bir ad alanının meta verilerinin ve verilerinin birincil bölgeden bir veya daha fazla ikincil bölgeye sürekli çoğaltılmasını sağlar.

      Önemli

      Konuları ve abonelikleri kullanmak istiyorsanız Standart veya Premium'u seçin. Temel fiyatlandırma katmanı konuları ve abonelikleri desteklemez.

      Premium fiyatlandırma katmanını seçtiyseniz, mesajlaşma birimi sayısını belirtin. Premium katman, her iş yükünün yalıtılmış olarak çalışması için CPU ve bellek düzeyinde kaynak yalıtımı sağlar. Bu kaynak kapsayıcısı mesajlaşma birimi olarak adlandırılır. Premium ad alanında en az bir mesajlaşma birimi vardır. Her Service Bus Premium ad alanı için 1, 2, 4, 8 veya 16 mesajlaşma birimleri seçebilirsiniz. Daha fazla bilgi için bkz. Service Bus premium mesajlaşma katmanı.

    6. Sayfanın alt kısmındaki Gözden geçir ve oluştur'u seçin.

      Ad alanı oluştur sayfasını gösteren ekran görüntüsü.

    7. Gözden geçir ve oluştur sayfasında ayarları gözden geçirin ve Oluştur'u seçin.

  6. Kaynağın dağıtımı başarılı olduktan sonra dağıtım sayfasında Kaynağa git'i seçin.

    Dağıtımın başarılı olduğunu gösteren sayfanın, Kaynağa git bağlantısını gösteren ekran görüntüsü.

  7. Service Bus ad alanınızın giriş sayfasını görürsünüz.

    Oluşturulan Service Bus ad alanının giriş sayfasını gösteren ekran görüntüsü.

Azure portalında kuyruk oluşturma

  1. Service Bus Ad Alanı sayfasında, sol taraftaki gezinti menüsünde Varlıklar'ı genişletin ve Kuyruklar'ı seçin.

  2. Kuyruklar sayfasındaki araç çubuğunda + Kuyruk'a tıklayın.

  3. Kuyruk için bir ad girin. Diğer değerleri varsayılan değerleriyle bırakın.

  4. Oluştur'i seçin.

    Kuyruk oluştur sayfasını gösteren ekran görüntüsü.

Önemli

Azure'da yeniyseniz Bağlantı Dizesi seçeneğini daha kolay izleyebilirsiniz. Bu hızlı başlangıçta bağlantı dizesi kullanma yönergelerini görmek için Bağlantı Dizesi sekmesini seçin. Gerçek dünyadaki uygulamalarda ve üretim ortamlarında Parolasız seçeneğini kullanmanızı öneririz.

Azure'da uygulamanın kimliğini doğrulama

Bu makalede Azure Service Bus'a bağlanmanın iki yolu gösterilmektedir: parolasız ve bağlantı dizesi.

İlk seçenek, Service Bus ad alanına bağlanmak için Microsoft Entra Id ve rol tabanlı erişim denetiminde (RBAC) güvenlik sorumlunuzu nasıl kullanacağınızı gösterir. Kodunuzda, yapılandırma dosyasında veya Azure Key Vault gibi güvenli bir depolama alanında sabit kodlanmış bir bağlantı dizesi olması konusunda endişelenmeniz gerekmez.

İkinci seçenek, Service Bus ad alanına bağlanmak için bir bağlantı dizesi nasıl kullanacağınızı gösterir. Azure'da yeniyseniz bağlantı dizesi seçeneğini daha kolay takip edebilirsiniz. Gerçek dünyadaki uygulamalarda ve üretim ortamlarında parolasız seçeneği kullanmanızı öneririz. Daha fazla bilgi için bkz. Service Bus kimlik doğrulaması ve yetkilendirmesi. Parolasız kimlik doğrulaması hakkında daha fazla bilgi için bkz. .NET uygulamalarının kimliğini doğrulama.

Microsoft Entra kullanıcınıza rol atama

Yerel olarak geliştirirken, Azure Service Bus'a bağlanan kullanıcı hesabının doğru izinlere sahip olduğundan emin olun. İleti göndermek ve almak için Azure Service Bus Veri Sahibi rolüne ihtiyacınız vardır. Kendinize bu rolü atamak için Kullanıcı Erişimi Yöneticisi rolüne veya eylemi içeren Microsoft.Authorization/roleAssignments/write başka bir role ihtiyacınız vardır.

Azure portalı, Azure CLI veya Azure PowerShell'i kullanarak kullanıcıya Azure RBAC rolleri atayabilirsiniz. Rol atamaları için kullanılabilir kapsamlar hakkında daha fazla bilgi edinmek için bkz. Azure RBAC kapsamını anlama.

Aşağıdaki örnekte, Azure Service Bus kaynaklarına tam erişim sağlayan `Azure Service Bus Data Owner` rolü kullanıcı hesabınıza atanır. Gerçek bir senaryoda, kullanıcılara yalnızca daha güvenli bir üretim ortamı için gereken minimum izinleri vermek için en düşük ayrıcalık ilkesini izleyin.

Azure Service Bus için Azure yerleşik rolleri

Azure Service Bus için, Azure portalı ve Azure kaynak yönetimi API'sini kullanarak ad alanlarının ve tüm ilgili kaynakların yönetimi Azure RBAC modeli kullanılarak zaten korunur. Azure, Service Bus ad alanına erişim yetkisi vermek için aşağıdaki Azure yerleşik rollerini sağlar:

Özel bir rol oluşturmak istiyorsanız, Service Bus işlemleri için gereken haklar bölümüne bakın.

Microsoft Entra kullanıcısını Azure Service Bus Sahibi rolüne ekleme

Microsoft Entra kullanıcı adınızı Service Bus ad alanı düzeyinde Azure Service Bus Veri Sahibi rolüne ekleyin. Bu yapılandırma, kullanıcı hesabınız bağlamında çalışan bir uygulamanın kuyruğa veya konuya ileti göndermesine olanak tanır. Bir kuyruktan veya bir konuya ait abonelikten ileti alabilir.

Önemli

Çoğu durumda rol atamasının Azure'a yayılması bir veya iki dakika sürer. Nadir durumlarda, sekiz dakikaya kadar sürebilir. Kodunuzu ilk kez çalıştırdığınızda kimlik doğrulama hataları alıyorsanız, birkaç dakika bekleyin ve yeniden deneyin.

  1. Azure portalında Service Bus Ad Alanı sayfanız açık değilse ana arama çubuğunu veya sol gezintiyi kullanarak Service Bus ad alanınızı bulun.

  2. Genel Bakış sayfasında, sol taraftaki menüden Erişim denetimi (IAM) öğesini seçin.

  3. Erişim denetimi (IAM) sayfasında Rol atamaları sekmesini seçin.

  4. Üst menüden + Ekle'yi ve ardından Rol ataması ekle'yi seçin.

    Rol atamayı gösteren ekran görüntüsü.

  5. Sonuçları istenen role göre filtrelemek için arama kutusunu kullanın. Bu örnek için eşleşen sonucu arayın Azure Service Bus Data Owner ve seçin. Ardından İleri'yi seçin.

  6. Erişim ata altında Kullanıcı, grup veya hizmet hesabı'nı seçin ve ardından + Üyeleri seç tıklayın.

  7. İletişim kutusunda Microsoft Entra kullanıcı adınızı (genellikle user@domain e-posta adresiniz) arayın ve iletişim kutusunun alt kısmındaki Seç'i seçin.

  8. Son sayfaya gitmek için Gözden geçir + ata'yı seçin ve ardından işlemi tamamlamak için Gözden geçir + ata'yı tekrar seçin.

Visual Studio'yu başlatma

Aşağıdaki adımları kullanarak service bus ad alanına erişim yetkisi vekleyebilirsiniz:

  1. Visual Studio’yu başlatın. Başlarken penceresini görüyorsanız, sağ bölmedeki Kod olmadan devam et bağlantısını seçin.

  2. Visual Studio'nun sağ üst kısmındaki Oturum aç düğmesini seçin.

    Visual Studio'da Oturum aç düğmesinin ekran görüntüsü.

  3. Daha önce bir rol atadığınız Microsoft Entra hesabını kullanarak oturum açın.

    Hesap seçimi iletişim kutusunun ekran görüntüsü.

Kuyruğa ileti gönderme

Bu bölümde, Service Bus kuyruğuna ileti göndermek için bir .NET konsol uygulamasının nasıl oluşturulacağı gösterilmektedir.

Not

Bu hızlı başlangıç, Service Bus kuyruğuna toplu ileti göndermeye ve sonra bunları almaya yönelik basit bir senaryo uygulamaya yönelik adım adım yönergeler sağlar. Diğer ve gelişmiş senaryolarla ilgili daha fazla örnek için bkz . GitHub'da Service Bus .NET örnekleri.

Konsol uygulaması oluşturma

  1. Visual Studio'da, Dosya ->Yeni ->Proje menüsünü seçin.

  2. Yeni proje oluştur iletişim kutusunda aşağıdaki adımları uygulayın: Bu iletişim kutusunu görmüyorsanız, menüden Dosya'yı seçin, Yeni'yi ve ardından Proje'yi seçin.

    1. Programlama dili için C# öğesini seçin.

    2. Uygulamanın türü için Konsol'a tıklayın.

    3. Sonuçlar listesinden Konsol Uygulaması'nı seçin.

    4. Ardından İleri'yi seçin.

      C# ve Konsol'un seçili olduğu Yeni proje oluştur iletişim kutusunun ekran görüntüsü.

  3. Proje adı olarak QueueSender, çözüm adı için ServiceBusQueueQuickStart girin ve İleri'yi seçin.

    Yeni projenizi yapılandırın iletişim kutusundaki çözüm ve proje adlarının ekran görüntüsü.

  4. Ek bilgiler sayfasında Oluştur'u seçerek çözümü ve projeyi oluşturun.

NuGet paketlerini projeye ekleme

  1. Menüden Araçlar

  2. Azure.Messaging.ServiceBus NuGet paketini yüklemek için aşağıdaki komutu çalıştırın.

    Install-Package Azure.Messaging.ServiceBus
    
  3. Azure.Identity NuGet paketini yüklemek için aşağıdaki komutu çalıştırın.

    Install-Package Azure.Identity
    

Kuyruğa ileti göndermek için kod ekleme

  1. öğesinin içeriğini Program.cs aşağıdaki kodla değiştirin. Önemli adımlar, kod açıklamalarında ek bilgilerle birlikte aşağıdaki bölümde özetlenmiştir.

    Önemli

    Kod parçacığındaki yer tutucu değerlerini (<NAMESPACE-NAME> ve <QUEUE-NAME>) Service Bus ad alanınızın ve kuyruğunuzun adlarıyla güncelleştirin.

    using Azure.Messaging.ServiceBus;
    using Azure.Identity;
    
    // name of your Service Bus queue
    // 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 queue
    ServiceBusSender sender;
    
    // number of messages to be sent to the queue
    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.
    //
    // Set the transport type to AmqpWebSockets so that the ServiceBusClient uses the port 443. 
    // If you use the default AmqpTcp, ensure that ports 5671 and 5672 are open.
    var clientOptions = new ServiceBusClientOptions
    { 
        TransportType = ServiceBusTransportType.AmqpWebSockets
    };
    //TODO: Replace the "<NAMESPACE-NAME>" and "<QUEUE-NAME>" placeholders.
    client = new ServiceBusClient(
        "<NAMESPACE-NAME>.servicebus.windows.net",
        new DefaultAzureCredential(),
        clientOptions);
    sender = client.CreateSender("<QUEUE-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 queue
        await sender.SendMessagesAsync(messageBatch);
        Console.WriteLine($"A batch of {numOfMessages} messages has been published to the queue.");
    }
    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. Projeyi derleyin ve hata olmadığından emin olun.

  3. Programı çalıştırın ve onay iletisini bekleyin.

    A batch of 3 messages has been published to the queue
    

    Önemli

    Çoğu durumda rol atamasının Azure'a yayılması bir veya iki dakika sürer. Nadir durumlarda, sekiz dakikaya kadar sürebilir. Kodunuzu ilk kez çalıştırdığınızda kimlik doğrulama hataları alıyorsanız, birkaç dakika bekleyin ve yeniden deneyin.

  4. Azure portalında şu adımları izleyin:

    1. Service Bus ad alanınıza gidin.

    2. Genel Bakış sayfasında, orta alt bölmedeki kuyruğu seçin.

      Azure portalında kuyruğun seçili olduğu Service Bus Ad Alanı sayfasının ekran görüntüsü.

    3. Ayarlar bölümündeki değerlere dikkat edin.

      Alınan ileti sayısının ve kuyruğun boyutunun ekran görüntüsü.

    Aşağıdaki değerlere dikkat edin:

    • Kuyruğun Etkin ileti sayısı değeri artık 3'tür. Bu gönderen uygulamasını iletileri almadan her çalıştırdığınızda, bu değer 3 artar.
    • Uygulama kuyruğa her ileti ekleyişinde kuyruğun geçerli boyutu artar.
    • En alttaki Ölçümler bölümündeki İletiler grafiğinde kuyruk için üç gelen ileti olduğunu görebilirsiniz.

Kuyruktan ileti alma

Bu bölümde, kuyruktan ileti alan bir .NET konsol uygulaması oluşturacaksınız.

Not

Bu hızlı başlangıçta, Service Bus kuyruğuna toplu ileti gönderme ve ardından alma senaryosunu uygulamaya yönelik adım adım yönergeler sağlanır. Diğer ve gelişmiş senaryolarla ilgili daha fazla örnek için bkz . GitHub'da Service Bus .NET örnekleri.

Alıcı için proje oluşturma

  1. Çözüm Gezgini penceresinde ServiceBusQueueQuickStart çözümüne sağ tıklayın, Ekle'nin üzerine gelin ve Yeni Proje'yi seçin.
  2. Konsol uygulaması'yı ve ardından İleri'yi seçin.
  3. Proje adı için QueueReceiver girin ve Oluştur'u seçin.
  4. Çözüm Gezgini penceresinde QueueReceiver'a sağ tıklayın ve Başlangıç Projesi Olarak Ayarla'yı seçin.

NuGet paketlerini projeye ekleme

  1. Menüden Araçlar

  2. Varsayılan proje için QueueReceiver'ı seçin.

    Paket Yöneticisi Konsolu'nda seçilen QueueReceiver projesinin ekran görüntüsü.

  3. Azure.Messaging.ServiceBus NuGet paketini yüklemek için aşağıdaki komutu çalıştırın.

    Install-Package Azure.Messaging.ServiceBus
    
  4. Azure.Identity NuGet paketini yüklemek için aşağıdaki komutu çalıştırın.

    Install-Package Azure.Identity
    

Kuyruktan ileti almak için kodu ekleme

Bu bölümde, kuyruktan iletileri almak için kod ekleyebilirsiniz.

  1. sınıfına Program aşağıdaki kodu ekleyin:

    using System.Threading.Tasks;
    using Azure.Identity;
    using Azure.Messaging.ServiceBus;
    
    // 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 queue
    ServiceBusProcessor processor;
    
  2. Aşağıdaki yöntemleri sınıfın Program sonuna ekleyin.

    // handle received messages
    async Task MessageHandler(ProcessMessageEventArgs args)
    {
        string body = args.Message.Body.ToString();
        Console.WriteLine($"Received: {body}");
    
        // complete the message. message is deleted from the queue. 
        await args.CompleteMessageAsync(args.Message);
    }
    
    // handle any errors when receiving messages
    Task ErrorHandler(ProcessErrorEventArgs args)
    {
        Console.WriteLine(args.Exception.ToString());
        return Task.CompletedTask;
    }
    
  3. Aşağıdaki kodu sınıfın Program sonuna ekleyin. Önemli adımlar, kod açıklamalarında ek bilgilerle birlikte aşağıdaki bölümde özetlenmiştir.

    • nesnesini kullanarak bir DefaultAzureCredential nesnesi oluşturur. DefaultAzureCredential Azure Service Bus'ta kimlik doğrulaması yapmak için Visual Studio oturum açma bilgilerinizi otomatik olarak bulur ve kullanır.
    • Belirtilen Service Bus yöntemini çağırır.
    • ServiceBusProcessor nesnesinin ProcessMessageAsync ve ProcessErrorAsync olayları için işleyicileri belirtir.
    • StartProcessingAsync yöntemi nesnede çağırılarak, ServiceBusProcessor üzerinden iletileri işlemeye başlanır.
    • Kullanıcı işlemi sonlandırmak için bir tuşa bastığında nesnesinde StopProcessingAsync'iServiceBusProcessor çağırır.

    Önemli

    Kod parçacığındaki yer tutucu değerlerini (<NAMESPACE-NAME> ve <QUEUE-NAME>) Service Bus ad alanınızın ve kuyruğunuzun adlarıyla güncelleştirin.

    // 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.
    //
    // Set the transport type to AmqpWebSockets so that the ServiceBusClient uses port 443. 
    // If you use the default AmqpTcp, make sure that ports 5671 and 5672 are open.
    
    // TODO: Replace the <NAMESPACE-NAME> placeholder
    var clientOptions = new ServiceBusClientOptions()
    {
        TransportType = ServiceBusTransportType.AmqpWebSockets
    };
    client = new ServiceBusClient(
        "<NAMESPACE-NAME>.servicebus.windows.net",
        new DefaultAzureCredential(),
        clientOptions);
    
    // create a processor that we can use to process the messages
    // TODO: Replace the <QUEUE-NAME> placeholder
    processor = client.CreateProcessor("<QUEUE-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. Tamamlanan Program sınıf aşağıdaki kodla eşleşmelidir:

    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 queue
    ServiceBusProcessor processor;
    
    // 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.
    //
    // Set the transport type to AmqpWebSockets so that the ServiceBusClient uses port 443.
    // If you use the default AmqpTcp, make sure that ports 5671 and 5672 are open.
    
    // TODO: Replace the <NAMESPACE-NAME> and <QUEUE-NAME> placeholders
    var clientOptions = new ServiceBusClientOptions() 
    {
        TransportType = ServiceBusTransportType.AmqpWebSockets
    };
    client = new ServiceBusClient("<NAMESPACE-NAME>.servicebus.windows.net", 
        new DefaultAzureCredential(), clientOptions);
    
    // create a processor that we can use to process the messages
    // TODO: Replace the <QUEUE-NAME> placeholder
    processor = client.CreateProcessor("<QUEUE-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();
    }
    
    // handle received messages
    async Task MessageHandler(ProcessMessageEventArgs args)
    {
        string body = args.Message.Body.ToString();
        Console.WriteLine($"Received: {body}");
    
        // complete the message. message is deleted from the queue. 
        await args.CompleteMessageAsync(args.Message);
    }
    
    // handle any errors when receiving messages
    Task ErrorHandler(ProcessErrorEventArgs args)
    {
        Console.WriteLine(args.Exception.ToString());
        return Task.CompletedTask;
    }
    
  5. Projeyi derleyin ve hata olmadığından emin olun.

  6. Alıcı uygulamasını çalıştırın. Alınan iletileri görmeniz gerekir. Alıcıyı ve uygulamayı durdurmak için herhangi bir tuşa basın.

    Wait for a minute and then press any key to end the processing
    Received: Message 1
    Received: Message 2
    Received: Message 3
    
    Stopping the receiver...
    Stopped receiving messages
    
  7. Portalı yeniden denetleyin. Birkaç dakika bekleyin ve 0Etkin iletileri görmüyorsanız sayfayı yenileyin.

    • Etkin ileti sayısı ve Geçerli boyut değerleri artık 0'dır.

    • Alttaki Ölçümler bölümündeki İletiler grafiğinde, kuyruk için üç gelen ileti ve üç giden ileti olduğunu görebilirsiniz.

      Etkin iletilerin ve alma sonrasındaki boyutun ekran görüntüsü.

Ek bilgi

Aşağıdaki belgelere ve örneklere bakın:

Kaynakları temizleme

Azure portalında Service Bus ad alanınıza gidin ve Azure portalında Sil'i seçerek ad alanını ve içindeki kuyruğu silin.

Bkz . Azure Service Bus ile çalışmaya başlama konuları ve abonelikleri (.NET).