Azure IoT Hub设备连接超时问题求助
Azure IoT Hub .NET 模拟设备发送遥测超时问题求助
我正在跟着Azure IoT Hub的.NET快速入门步骤搭建服务并连接模拟设备,目的是实现向云端发送遥测数据,但执行dotnet run命令时触发了超时错误,具体报错信息如下:
d-device>dotnet run IoT Hub Quickstarts #1 - Simulated device. Ctrl-C to exit. https://skillmatrix.lnttechservices.com:8080/ Unhandled Exception: System.TimeoutException: Operation timeout expired. at Microsoft.Azure.Devices.Client.DeviceClient.<>c.<ApplyTimeout>b__74_2(Task t) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at simulated_device.SimulatedDevice.<SendDeviceToCloudMessagesAsync>d__2.MoveNext() in C:\Users\20137539\Downloads\azure-iot-samples-csharp-master\azure-iot-samples-csharp-master\iot-hub\Quickstarts\simulated-device\SimulatedDevice.cs:line 51 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadPoolWorkQueue.Dispatch()
恳请各位技术大佬帮忙排查解决这个问题,谢谢!
可能的排查方向供参考:
- 核对设备连接字符串:确保代码里用的连接字符串是从Azure门户IoT Hub的目标设备详情页完整复制的,重点检查共享访问密钥有没有遗漏或拼写错误。
- 测试网络连通性:用PowerShell执行
Test-NetConnection your-hub-name.azure-devices.net -Port 8883(替换成你的IoT Hub域名),确认网络允许访问IoT Hub的MQTT端口(默认8883)。如果是企业内网,要排查防火墙、代理是否拦截了这个端口的出站流量。 - 检查IoT Hub状态:登录Azure门户确认你的IoT Hub处于运行状态,没有被暂停,同时查看消息配额是否还剩余(避免因超限导致拒绝服务)。
- 确认设备状态:在IoT Hub的设备列表里,检查这个模拟设备的状态是否为已启用,有没有被误设为禁用。
- 调整客户端配置:尝试在创建
DeviceClient时延长操作超时时间,或者切换到AMQP协议测试,看是否是协议适配或超时阈值设置的问题。 - 更新NuGet包:确认项目里的
Microsoft.Azure.Devices.Client包是最新稳定版本,旧版本可能存在已知的连接bug。
内容的提问来源于stack exchange,提问作者RAKPAT
相关产品推荐
相关产品推荐

