Невозможно установить поле ExpiryTimeUtc при отправке сообщений C2D с использованием IoT Hub - PullRequest
1 голос
/ 24 сентября 2019

Вопрос переполнения стека

У меня есть консольное приложение, которое может отправлять сообщения на устройство Android.Всякий раз, когда я пытаюсь отправить сообщение с установленным ExpiryTimeUtc, метод serviceClient.SendAsync выдает исключение:

Необработанное исключение: Microsoft.Azure.Devices.Common.Exceptions.IotHubException: отслеживание Id: {TRACKING_ID_OMITED} -TimeStamp: 24.09.2009 00: 23: 41-G: 20-TimeStamp: 24.09.2009 00:23:41 в Microsoft.Azure.Devices.AmqpServiceClient.SendAsync (String deviceId, Message message, Nullable`1 тайм-аут)

Я проверил код исключения и его InvalidErrorCode, который совсем не помогает.

Вот фрагмент того, что породило исключение (точно такой же код работает, когда ExpiryTimeUtc не установлен:

var message = new Message();
message.MessageId = messageId;
message.Ack = DeliveryAcknowledgement.Full;

message.CreationTimeUtc = creationTime; 
message.ExpiryTimeUtc = DateTimeOffset.UtcNow.DateTime.AddMinutes(1);
message.Properties.Add("type", "TEST_TYPE");
message.Properties.Add("test_data", data);
message.Properties.Add("checksum", checksum);
message.Properties.Add("page", pageNumber.ToString());
message.Properties.Add("page_total", total);

Я использую Microsoft.Azure.Devices v1.18.1 и Microsoft.NETCore.App v2.1.0.

1 Ответ

1 голос
/ 25 сентября 2019

На основании моего теста DateTimeOffset.UtcNow.DateTime.AddMinutes(1) не устанавливает Kind свойство.

enter image description here

Вы можете использовать DateTime.UtcNow.AddMinutes(1) вместо этого.Это будет работать.

enter image description here

...