MessagingEntityNotFoundException:无法找到消息传递实体'ihsuprodsgres029dednamespace:eventhub:'

时间:2017-06-23 15:32:29

标签: c# azure azure-web-sites azure-iot-hub azure-iot-sdk

我只是尝试使用Azure IOT Hub将我的设备连接到云。但是我收到如下错误。

  

MessagingEntityNotFoundException:找不到消息传递实体'ihsuprodsgres029dednamespace:eventhub:iothub-ehub-'。 TrackingId:4772b610-8ff3-4709-8ea9-ffcd5784fe1c_B4,SystemTracker:ihsuprodsgres029dednamespace:eventhub:iothub-ehub-sibeeshiot-176205-a588b66686~16383 | team01,Timestamp:6/23/2017 3:07:54 PM TrackingId:41110b704d814af497fd9924da6714d8_G4,SystemTracker :gateway2,时间戳:6/23/2017 3:07:55 PM,referenceId:41110b704d814af497fd9924da6714d8_G4

如果你遇到过同样的问题,请你帮我解决一下。以下是我正在尝试的代码。

static void Main(string[] args)
        {
            Console.WriteLine("Receive messages. Ctrl-C to exit.\n");
            eventHubClient = EventHubClient.CreateFromConnectionString(connectionString, iotHubD2cEndpoint);

            var d2cPartitions = eventHubClient.GetRuntimeInformation().PartitionIds;

            CancellationTokenSource cts = new CancellationTokenSource();

            System.Console.CancelKeyPress += (s, e) =>
            {
                e.Cancel = true;
                cts.Cancel();
                Console.WriteLine("Exiting...");
            };

            var tasks = new List<Task>();
            foreach (string partition in d2cPartitions)
            {
                tasks.Add(ReceiveMessagesFromDeviceAsync(partition, cts.Token));
            }
            Task.WaitAll(tasks.ToArray());
        }
        private static async Task ReceiveMessagesFromDeviceAsync(string partition, CancellationToken ct)
        {
            var eventHubReceiver = eventHubClient.GetConsumerGroup("Team01").CreateReceiver(partition, DateTime.UtcNow);
            while (true)
            {
                if (ct.IsCancellationRequested) break;
                EventData eventData = await eventHubReceiver.ReceiveAsync();
                if (eventData == null) continue;

                string data = Encoding.UTF8.GetString(eventData.GetBytes());
                Console.WriteLine("Message received. Partition: {0} Data: '{1}'", partition, data);
            }
        }

1 个答案:

答案 0 :(得分:4)

您的 iotHubD2cEndpoint 值似乎与Event Hub兼容的名称不正确(可能您使用的是消息/事件,例如Azure IoT Hub端点)。< / p>

以下屏幕摘要显示事件的事件中心兼容端点:

EventHubEndpoint

  • 另一个选项是使用Azure IoT中心连接字符串和端点事件,请参阅以下示例:

    iotHubD2cEndpoint =“消息/事件” connectionString =“HostName = *****。azure-devices.net; SharedAccessKeyName = iothubowner; SharedAccessKey = ******”