2017-01-07 5 views
0

Я попытался удалить устройства с помощью метода RemoveDeciceAsync через цикл после извлечения всех устройств с использованием метода GetDevicesAsync. Но этот процесс удаления иногда вызывает исключения для некоторых устройств. Обратите внимание, что исключение не всегда выбрасывается. Как я могу удалить все устройства из концентратора IoT с помощью .Net SDK? Оригинальный код для удаления устройства: Source code to delete devicesКак удалить все устройства с концентратора Azure IoT с помощью C#?

Вот скриншот исключения. Here is the image of the exception

+0

Я бы порекомендовал, если вы отредактируете ваш вопрос, чтобы показать свой код и сообщение об ошибке – CSharpRocks

+0

Обновлен. Можете ли вы проверить сейчас? – user1814131

+0

@ user1814131, я не смог воспроизвести эту ошибку. Возможно ли, что у вас есть устройство, все еще подключенное к Azure IoT Hub, когда вы пытаетесь удалить их все? – Jackie

ответ

0

Трудно помочь вам без ошибки, но вместо использования цикла с RemoveDeviceAsync SDK обеспечивает удаление пакета с принудительным удалением.

RemoveDevices2Async (IEnumerable, Boolean, CancellationToken);

https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.devices.registrymanager

+0

Я обновил вопрос с ошибкой. Я попробую ваш подход. благодаря – user1814131

0

Как упомянуто @Shachar, вы должны использовать API RemoveDevices2Async. Для обеспечения доступности услуг IoT Hub дросселирует количество операций для каждого вычислительного блока. Вы можете видеть here, что операции CRUD дросселируются за пределы 100/мин. RemoveDevice s 2Async API удаляет устройства навалом и один счетчик вызовов только для одной операции.