Подготовка выполнена успешно (?), Но возвращает ошибку - PullRequest
0 голосов
/ 17 июня 2019

При вызове регистрации устройства в IoTCentral возвращается исключение, но устройство становится видимым в веб-приложении (в разделе «Неассоциированные устройства»).

Гуглил, не смог ничего найти.Запуск с DEBUG = *, пила

azure-iot-provisioning-device-http:Http {"operationId":"4.dd5e9d546d057f12.8a2a1010-281f-4ac1-a29f-591800934ecc","status":"failed","registrationState":{"registrationId":"jeffsdeskjune","createdDateTimeUtc":"2019-06-17T14:25:14.7183582Z","status":"failed","errorCode":400209,"errorMessage":"Custom allocation failed with
status code: 401","lastUpdatedDateTimeUtc":"2019-06-17T14:25:14.8832611Z","etag":"IjZkMDBmY2MwLTAwMDAtMDEwMC0wMDAwLTVkMDdhMmNhMDAwMCI="}}

401 была бы несанкционированной, но что это за «пользовательское распределение»?Является ли отсутствующая авторизация чем-то, что, как ожидается, будет предоставлено этим девственным устройством, которое пытается зарегистрироваться, или это какая-то услуга-услуга?

Код (Javascript / Node):

var transport = new Transport();
var securityClient = new X509Security(registrationId, deviceCert);
    deviceClient = ProvisioningDeviceClient.create(provisioningHost, idScope, transport, securityClient);

// Register the device.  Do not force a re-registration.
deviceClient.register(function (err, result) {
    if (err) {
      console.log("error registering device: " + err);

Код скопирован из register_x509.js в azure-iot-sdk-node.Выдается сообщение об ошибке «Ошибка регистрации устройства: ProvisioningRegistrationFailedError: регистрация не удалась».Тем не менее, если я захожу на xxx.azureiotcentral.com Device Explorer / неассоциированные устройства, устройство появляется там.Выдается ошибка, было ли устройство уже в этом списке или я сначала его удаляю.Сертификат, который подписал этот сертификат устройства, был загружен и проверен и остается в силе.Что происходит / что мне с этим делать?

1 Ответ

0 голосов
/ 21 июня 2019

Я считаю, что это нормальное поведение, хотя сообщение об ошибке определенно можно улучшить. Поток выглядит следующим образом:

  • Чтобы подключить устройство к приложению IoT Central без предварительной регистрации, необходимо сгенерировать подходящие учетные данные и настроить устройства. Когда устройство включается в первый раз, оно автоматически подключается к приложению IoT Central. Оператор IoT Central должен одобрить устройство, прежде чем оно сможет отправлять данные.

Если устройство не было зарегистрировано вручную на странице «Обозреватель устройств», но подключено с действительными учетными данными и отображается как неассоциированное устройство на странице «Обозреватель устройств», состояние инициализации должно отображаться как зарегистрирован . Когда вы связываете устройство с соответствующим шаблоном устройства и утверждаете, что устройство подключается к вашему приложению IoT Central, статус обеспечения должен отображаться как provisioned .

Следовательно, корнем доверия в вашем случае (чтобы вы знали, было ли устройство зарегистрировано или нет) должно быть состояние инициализации, отображаемое в вашем центральном приложении iot.

...