IRONSOFTWAREHOME
開發者更新

Azure.Messaging.ServiceBus範例C#(工作原理)

Jacob Mellor,首席技術官 @ Team Iron
Jacob Mellor
Updated: 2026年4月21日

在當今互聯的數位環境中,高效的溝通是成功企業的基石。 無論是應用間傳輸關鍵資料,還是確保分散系統中的即時更新,可靠的消息傳輸基礎設施都是不可或缺的。

Azure Service Bus,一個基於雲的消息傳輸服務,成為幫助開發者構建可擴展、解耦和具彈性應用的強大解決方案。 讓我們深入探討Azure Service Bus的領域,以理解其重要性並探索其多種功能。 在本文的後面,我們還將查看IronPDF來管理、生成和讀取PDF文件。

理解Azure Service Bus

Azure Service Bus是一個完全管理的企業整合消息代理,促進了雲端、本地或混合環境應用和服務之間的可靠溝通。

它提供靈活的消息功能,包括排隊和發布/訂閱機制,以促進分散系統中不同組件之間的無縫通信。 此外,它允許批量消息,從而允許多個消息而不超過總大小限制。

Azure Service Bus提供以下好處:

  1. **應用解耦:**Service Bus允許您將應用和服務彼此分開。 這種解耦增強了可靠性和可擴展性。
  2. **負載平衡:**它在競爭的工作者之間平衡工作,確保資源的高效利用。
  3. **消息傳遞:**資料通過消息在應用和服務之間傳遞。 這些消息的消息體可以包含各種資料型別,如JSON、XML或純文字。
  4. **消息場景:**常見場景包括傳輸業務資料(如銷售訂單)、負載平衡,以及使用主題和訂閱者啟用出版者和訂閱者之間的關係。
  5. **事務:**Service Bus支持原子事務,允許在單一事務範圍內進行多次操作。 一個事務會有多個並發呼叫,而一個消息批次會有單個呼叫。
  6. **消息會話:**它促進高規模的工作流協調和有序的消息傳遞。

關鍵功能與能力

  1. **排隊與主題:**Azure Service Bus提供排隊和主題作為通信通道。 排隊啟用點對點通信,確保每條消息僅由一個接收器處理,非常適合工作負載分配和負載平衡場景。 另一方面,主題支持發布/訂閱消息模式,允許多個訂閱者獨立接收相關消息,並促進可擴展的事件驅動架構。

  2. **可靠的消息傳遞:**使用Azure Service Bus,消息傳遞本質上是可靠的。 它確保消息的持久性,能夠配置消息和錯誤處理程式,容錯能力,以及至少一次的傳遞語義,從而最大限度地減少資料丟失或重複的風險。 此外,它支持事務,允許在多個消息上進行原子操作,從而確保資料完整性。

  3. **死信處理與重試策略:**為了有效地處理錯誤消息,Azure Service Bus提供死信功能,允許問題消息自動移動到單獨的隊列中進行分析和故障排除。 此外,它提供靈活的重試策略,使開發者能夠配置自動重試並使用指數回退策略,以提高應用在瞬態故障面前的穩健性。

  4. **分區與擴展:**Azure Service Bus支持消息實體的分區,從而將工作負載分散到多個節點上,確保水平擴展性和高吞吐量。 這種能力對於處理大量消息和適應波動的工作負載而不損害性能或可靠性至關重要。

  5. **與Azure生態系統的整合:**Azure Service Bus可與其他Azure服務無縫整合,如Azure Functions、Logic Apps、Event Grid和Azure Kubernetes Service (AKS),使開發者能夠輕鬆構建端到端的解決方案。 無論是響應傳入的消息觸發無伺服器函式,還是使用Logic Apps編排複雜的工作流程,Azure Service Bus作為構建強大的事件驅動架構的核心。

簡介IronPDF

Azure.Messaging.ServiceBus 範例 C#(如何運作):圖1

IronPDF是一個強大的C# PDF庫,使您可以在.NET項目中生成、編輯和提取PDF文件內容。 以下是一些關鍵功能:

  1. HTML轉換為PDF:

    • 將HTML、CSS和JavaScript內容轉換為PDF格式。

    • 利用Chrome渲染引擎生成像素完美的PDF。

    • 生成來自URL、HTML文件或HTML字串的PDF。

  2. 圖像與內容轉換:

    • 將圖像轉換為PDF或從PDF中提取圖像。

    • 從現有的PDF中提取文字和圖像。

    • 支援多種影像格式。

  3. 編輯和操作:

    • 設置PDF的屬性、安全性和權限。

    • 新增數位簽名。

    • 編輯元資料和修訂歷史。

  4. 跨平台支持:

    • 支援.NET Core (8, 7, 6, 5和3.1+)、.NET Standard (2.0+) 和.NET Framework (4.6.2+)。

    • 相容Windows、Linux和macOS。

    • 可在NuGet上獲得,方便安裝。

使用IronPDF和Azure.Messaging.ServiceBus生成PDF文件

首先,使用Visual Studio建立一個控制台應用程式,如下所示。

Azure.Messaging.ServiceBus 範例 C#(如何運作):圖2

提供專案名稱

Azure.Messaging.ServiceBus 範例 C#(如何運作):圖3

提供.NET版本

Azure.Messaging.ServiceBus 範例 C#(如何運作):圖4

安裝IronPDF包。

Azure.Messaging.ServiceBus 範例 C#(如何運作):圖5

建立Azure Service Bus

在Azure中建立一個具有唯一名稱的名稱空間。 名稱空間是Service Bus資源的容器,如應用中的隊列和主題。

以下是建立名稱空間的方法:

  1. 登錄到Azure門戶。
  2. 轉到"所有服務"頁面。
  3. 在左側導航窗格中,從類別列表中選擇"整合"。
  4. 將滑鼠懸停在"Service Bus"上,並在Service Bus圖示上點擊"+"按鈕。

Azure.Messaging.ServiceBus 範例 C#(如何運作):圖6

要在建立名稱空間頁面上配置基本設置標籤,請按照以下步驟操作:

  1. **訂閱:**選擇您欲建立名稱空間的Azure訂閱。

  2. **資源組:**選擇欲放置名稱空間的現有資源組,或建立一個新的資源組。

  3. **名稱空間名稱:**輸入名稱空間的名稱。 確保名稱符合以下標準:

    • 在Azure中必須是唯一的。

    • 長度必須在6到50個字元之間。

    • 僅能包含字母、數字和連字元"-"。

    • 必須以字母開頭,以字母或數字結尾。

    • 不能以"-sb"或"-mgmt"結尾。

  4. **位置:**選擇名稱空間應託管的區域。

  5. **定價層級:**對名稱空間選擇價格層級(基本、標準或高級)。 在此範例中,選擇標準。

  6. 在頁面底部選擇審核 + 建立。

Azure.Messaging.ServiceBus 範例 C#(如何運作):圖7

  1. 在審核 + 建立頁面上選擇建立。

  2. 一旦資源部署成功,前往資源。

您會看到您Service Bus名稱空間的首頁。

在Azure門戶中建立Service Bus 隊列

要在您的Service Bus名稱空間中設置一個隊列,請按照以下步驟操作:

  1. **導航到隊列:**進入Azure門戶中的Service Bus名稱空間頁面。 從左側導航選單中選擇"隊列"。

  2. **建立新隊列:**在隊列頁面上,點擊工具列上的"+ Queue"按鈕。

  3. **配置隊列:**在提供的字段中輸入隊列的名稱。 將其他設置保持為預設值。 您需要在建立Azure Service Bus隊列時配置的選項:

    1. **名稱:**這是您隊列的唯一標識符。 選擇一個易於記憶且具描述性的名稱。

    2. 最大隊列大小:這定義了隊列的最大儲存容量。 您可以設置為1 GB、2 GB、5 GB、10 GB、20 GB、40 GB、80 GB或100 GB。 對於您的情況,設置為1 GB。

    3. **最大傳遞次數:**這指定消息在被發送到死信隊列或丟棄之前的最大傳遞次數。 這有助於處理消息處理失敗。

    4. **消息存活時間(TTL):**這決定了消息在隊列中保持多久後將過期。 您可以將此設在天、小時、分鐘和秒。 一旦達到TTL,如果死信功能已啟用,死信消息將被丟棄或移動到死信隊列。

    5. **鎖定持續時間:**這是消息被接收器鎖定以處理的時間量。 在此期間,其他接收器無法處理同一消息。 您可以在天、小時、分鐘和秒之間設置此持續時間。

    6. **啟用消息過期的死信處理:**啟用後,超過其TTL的過期消息將被移動到死信隊列,而不是被丟棄。 這允許進一步檢查和處理過期消息。

    7. **啟用分區:**此選項可在多個消息代理之間分配隊列分區,從而提高擴展性和吞吐量。 分區對處理大量消息很有用。

這些設置幫助您控制Azure Service Bus隊列的行為和性能,確保其滿足應用的需求。

Azure.Messaging.ServiceBus 範例 C#(如何運作):圖8

  1. **完成建立:**點擊"Create"按鈕以完成隊列的建立。 這些步驟確保您能成功地使用Azure門戶在您的Service Bus名稱空間中建立一個隊列。

安裝Azure.Messaging.ServiceBus,這是一個Service Bus客戶端函式庫,用於通過連接字串連接至Azure隊列。

Azure.Messaging.ServiceBus 範例 C#(如何運作):圖9

新增以下程式碼以使用Azure.Messaging.ServiceBus發送和接收消息。

using Azure.Messaging.ServiceBus;
namespace CodeSample
{
    public static class AzureServiceBusDemo
    {
        public static async Task Execute()
        {
            string connectionString = "Endpoint=sb://iron-articles.servicebus.windows.net/;SharedAccessKeyName=all;SharedAccessKey=uqQIzpuc2HxbnAb9keqTINvzfTcFbkkU0+ASbJZ/tow=;EntityPath=ironpdf";
            string queName = "ironpdf";
            Console.WriteLine("Demo IronPDF with Azure.Messaging.ServiceBus");
            Installation.EnableWebSecurity = true;

            // Instantiate Renderer
            var renderer = new ChromePdfRenderer();
            var content = "<h1>Demo IronPDF with Azure.Messaging.ServiceBus</h1>";
            content += "<h2>Send Message to Azure.Messaging.ServiceBus Queue: ironpdf</h2>";

            await using var client = new ServiceBusClient(connectionString);
            var msgText = "IronPDF is Awesome Package";
            content += $"<p>Message: {msgText}</p>";
            
            var tx = client.CreateSender(queName);
            await tx.SendMessageAsync(new ServiceBusMessage(msgText)); // Send message to the queue
            Console.WriteLine($"Sent Below message at: {DateTime.Now}");
            content += $"<p>Sent Below message at: {DateTime.Now}</p>";

            Console.ReadLine(); // wait for user input to read the message;

            var rx = client.CreateReceiver(queName);
            var msg = await rx.ReceiveMessageAsync(); // receive messages
            content += "<h2>Receive Message from Azure.Messaging.ServiceBus Queue: ironpdf</h2>";
            content += $"<p>Recieved Below message at: {DateTime.Now}</p>";
            Console.WriteLine($"Recieved Below message at: {DateTime.Now}");

            content += $"<p>MessageID={msg.MessageId}</p>";
            Console.WriteLine($"MessageID={msg.MessageId}");

            content += $"<p>Message Received: {msg.Body}</p>";
            Console.WriteLine($"Message Received: {msg.Body}");

            var pdf = renderer.RenderHtmlAsPdf(content);
            // Export to a file or Stream
            pdf.SaveAs("AwesomeAzureServiceBusQueueAndIronPdf.pdf");
        }
    }
}

程式碼説明

  1. 連接字串和隊列名稱:

    • connectionString 變數包含Azure Service Bus名稱空間的連接資訊。 它指定了端點、共用存取金鑰和實體路徑(隊列名稱)。

    • queName 變數保存您要操作的Service Bus隊列的名稱。

  2. 演示設置:

    • 程式碼以列印資訊開始:"Demo IronPDF與Azure.Messaging.ServiceBus。"

    • 它使用Installation.EnableWebSecurity = true;啟用網路安全性。

  3. 建立Service Bus客戶端:

    • ServiceBusClient符串部件

    • 此客戶端允許您與Service Bus實體(隊列、主題等)進行互動。

  4. 發送消息:

    • 使用CreateSender 方法將內容為"IronPDF是了不起的套件"的消息發送到指定的隊列。

    • 消息使用new ServiceBusMessage(msgText)建立。

    • 發送消息的時間戳將列印到控制台。

  5. 接收消息:

    • 使用CreateReceiver為同一隊列建立一個接收器。

    • 程式碼等待使用者輸入(使用Console.ReadLine())以模擬消息處理。

    • 當消息被接收到時,其ID和主體將列印到控制台。

  6. 生成PDF:

    • 渲染器從HTML內容(包括發送和接收的消息)生成PDF。

    • 最後的PDF儲存為"AwesomeAzureServiceBusQueueAndIronPdf.pdf"。

輸出

Azure.Messaging.ServiceBus 範例 C#(如何運作):圖10

PDF

Azure.Messaging.ServiceBus 範例 C#(如何運作):圖11

IronPDF 授權

IronPDF包需要授權以運行和生成PDF。 在進入套件前,在應用程式的開始位置新增下方程式碼。

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY";

透過IronPDF試用授權頁可獲得試用授權。

結論

在以數位轉型和技術快速發展為特徵的時代,Azure Service Bus成為全球企業現代化旅程中的一個關鍵組成部分。通過提供可靠、可擴展和靈活的消息功能,它幫助開發人員設計出的解決方案能適應不斷變化的業務需求。

無論是促進無縫整合、啟用事件驅動架構,還是確保異步通信,Azure Service Bus在推動創新和加速跨行業的數位倡議中扮演關鍵角色。

隨著組織不斷接受雲原生範式和分散架構,Azure Service Bus成為了Microsoft致力於使開發者和企業走入雲端過程中的一個證明。 IronPDF簡化了.NET應用中的PDF生成,提供建立專業級文件的靈活性和功能,直接從程式碼中實現。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰。

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密。
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰。
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起