在处理Azure IoT Hub中创建的邮件时遇到问题。
获取以下错误:抛出异常:' Microsoft.ServiceBus.Messaging.Amqp.AmqpException'在Microsoft.ServiceBus.dll中("发生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));
}
}
}
}
答案 0 :(得分:0)
在使用您的代码进行测试时,我不会遇到此问题,因此可能与其他内容有关。我找到了重复的帖子Azure IoT hub basic receiving example, AMQP error,它建议检查阻止端口或代理设置,你可以尝试一下。
答案 1 :(得分:0)
您的iotHubD2cEndpoint格式不正确。您可以在azure门户中找到兼容的端点 - >消息 - >设备到云设置。
我发现这是一个非常有用的示例:https://github.com/ppatierno/codesamples/tree/master/IoTHubAmqp/IoTHubAmqp
答案 2 :(得分:0)
代码看起来很好。我的相同,运作良好。
您最好的办法是在Azure中创建一个新的IoT中心并替换字符串。
答案 3 :(得分:0)
在构建连接字符串时,您可以在第12行尝试“Endpoint =”而不是“HostName =”吗?
希望这有帮助!
莫特
答案 4 :(得分:0)
几条评论:
如果您仍然遇到此问题,请告诉我们。
答案 5 :(得分:0)
有时我看到代理过滤amqp数据包。将传输类型更改为http可能会解决问题。 现在我无法访问Visual Studio,但我似乎记得可以在客户端属性下设置传输。 如果您尝试它,您可以轻松地找到问题是在代理中还是在程序中。