簡體   English   中英

Azure服務總線 - 消息直接進入死信隊列

[英]Azure service bus - message going straight to dead letter queue

我有以下代碼將消息發送到總線:

var queueClient = new QueueClient(ServiceBusConnectionString, QueueName);

var message = new Message(poco.SerializeToBytes());

await queueClient.SendAsync(message);

但他們似乎直接進入了死亡信件消息計數:

在此輸入圖像描述

我還創建了一個Azure函數,它將選擇消息:

    [FunctionName("ServiceBusFunction")]
    public static void Run([ServiceBusTrigger("schedule", AccessRights.Listen, Connection = "ServiceBusConnection")]byte[] myQueueItem, TraceWriter log)
    {
        log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
    }

當我關閉該功能時,在創建此功能之前,消息進入ACTIVE MESSAGE COUNT。 我已嘗試在本地運行該函數,但該函數未被命中。 我覺得自己錯過了從函數中獲取總線上的消息方面的基本信息嗎?

如果您轉到功能應用程序日志,您可能會看到錯誤

異常綁定參數'myQueueItem'。 Microsoft.Azure.WebJobs.ServiceBus:ContentType為“null”的BrokeredMessage無法反序列化為byte [],並顯示以下消息:'反序列化System.Byte []類型的對象時出錯。 輸入源格式不正確。'。 System.Runtime.Serialization:反序列化System.Byte []類型的對象時出錯。 輸入源格式不正確。 System.Runtime.Serialization:輸入源格式不正確。 2018-03-01T15:14:41.578

功能應用程序嘗試處理您的消息10次(默認),然后將其放入DLQ

10次​​傳遞嘗試后無法使用消息。

問題與您從“新的”.NET標准服務總線客戶端發送消息的事實有關,而Function App v1正在使用“舊的” BrokeredMessage客戶端。 並且它們在二進制級別上不兼容,請參閱此問題

在功能應用程序v2包括服務總線綁定准備好之前,您應該最好使用舊的Service Bus客戶端發送消息。 如果您必須使用新客戶端,請參閱上面鏈接的問題中的一些解決方法,例如此評論

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM