堆栈溢出问题
我有一个控制台应用程序,可以将消息发送到Android设备。每当我尝试发送已设置ExpiryTimeUtc的消息时,serviceClient.SendAsync方法都会引发异常:
未处理的异常:Microsoft.Azure.Devices.Common.Exceptions.IotHubException: 跟踪ID:{TRACKING_ID_OMITTED}-时间戳:09/24/2019 00:23:41-G:20-时间戳:09/24/2019 00:23:41 在Microsoft.Azure.Devices.AmqpServiceClient.SendAsync(String deviceId,Message message,Nullable`1 timeout)
我检查了异常的代码及其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
。
答案 0 :(得分:1)
根据我的测试,DateTimeOffset.UtcNow.DateTime.AddMinutes(1)
未设置Kind
属性。
您可以改用DateTime.UtcNow.AddMinutes(1)
。它将起作用。