我正在将Azure Device SDK用于.NET Core,以便将设备连接到Azure IoT中心。服务器有时会拒绝来自设备的某些消息(例如双更新或遥测消息),并以状态码400进行响应。结果,客户端抛出了异常,但由于其异步特性,它们被吞噬了Azure内部SDK,从不扔我的代码。
实际上如何通知我这些错误,以便我可以处理和显示它们?
我还可以从Azure Device SDK代码中看到它使用某种日志记录(EventSource),但是从未在代码中启用它:
From Logging.Common.cs:
Log.IsEnabled() // always returns false
您能为我提供一些方法吗?1)实际启用Azure设备SDK中的日志记录,以及2)查找实际记录的内容?
更新:有关吞入某处的异常的详细信息
// Fired here after I send twin reported properties to server:
AmqpTransportHandler.VerifyResponseMessage:
if (status >= 400)
{
throw new InvalidOperationException("Service rejected the message with status: " + status);
}
// Then becomes caught and re-fired here:
AmqpTransportHandler.SendTwinPatchAsync:
throw AmqpClientHelper.ToIotHubClientContract(exception);
// Then it disappears somewhere in the "dance" of the async tasks
答案 0 :(得分:0)