[英]IOT hub message processor
處理在Azure IoT中心中創建的消息時遇到一些麻煩。
得到以下錯誤:引發異常:Microsoft.ServiceBus.dll中的“ Microsoft.ServiceBus.Messaging.Amqp.AmqpException”(“發生AMQP錯誤(條件='amqp:link:redirect')。”)
誰能指出我正確的方向?
問候,喬納斯
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.ServiceBus.Messaging;
namespace IOTHubMessageProcessor
{
class Program
{
static string connectionString = "HostName=yaddaaaa.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=keydataasdss+tacsCxwkWQeUm9sMCc2GHnQkIZHM=";
static string iotHubD2cEndpoint = "messages/events";
static EventHubClient eventHubClient;
static void Main(string[] args)
{
Console.WriteLine("Receive messages\n");
eventHubClient = EventHubClient.CreateFromConnectionString(connectionString, iotHubD2cEndpoint);
var d2cPartitions = eventHubClient.GetRuntimeInformation().PartitionIds;
foreach (string partition in d2cPartitions)
{
ReceiveMessagesFromDeviceAsync(partition);
}
Console.ReadLine();
}
private async static Task ReceiveMessagesFromDeviceAsync(string partition)
{
var eventHubReceiver = eventHubClient.GetDefaultConsumerGroup().CreateReceiver(partition, DateTime.UtcNow);
while (true)
{
EventData eventData = await eventHubReceiver.ReceiveAsync();
if (eventData == null) continue;
string data = Encoding.UTF8.GetString(eventData.GetBytes());
Console.WriteLine(string.Format("Message received. Partition: {0} Data: '{1}'", partition, data));
}
}
}
}
使用您的代碼進行測試時,我沒有遇到此問題,因此它可能與其他問題有關。 我發現重復線程Azure IoT中心基本接收示例AMQP錯誤 ,它建議檢查塊端口或代理設置,您可以嘗試一下。
您的iotHubD2cEndpoint的格式不正確。 您可以在Azure門戶->消息->設備到雲設置中找到兼容的端點。
我發現這是一個非常有用的示例: https : //github.com/ppatierno/codesamples/tree/master/IoTHubAmqp/IoTHubAmqp
代碼看起來很好。 我的是相同的,並且運作良好。
最好的選擇是在Azure中創建一個新的IoT中心並替換字符串。
在建立連接字符串時,可以在第12行嘗試使用“ Endpoint =”代替“ HostName =”嗎?
希望這可以幫助!
莫特
幾點評論:
讓我們知道您是否仍然遇到此問題。
有時我看到代理過濾amqp數據包。 將傳輸類型更改為http可能會解決此問題。 現在,我沒有訪問Visual Studio的權限,但我似乎記得,可以在客戶端屬性下設置傳輸方式。 如果嘗試使用它,您可以輕松找到問題出在代理服務器還是程序中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.