Ошибка различается, даже если оборудование такое же и OID тот же, но расположен в другом месте. другая сеть. Похоже, в конец UDP-пакета добавляется сегмент данных. На одном оборудовании сообщение об ошибке может быть таким: «Конец файла BER», а на другом идентичном оборудовании сообщение об ошибке может быть «неподдерживаемый тип данных: 34». " или "неподдерживаемый тип данных: 115" и т. д. В одном и том же OID обнаружено множество разных типов данных, но из разных частей оборудования.
Ошибка возникает в исходном файле проекта «MessageFactory.cs» в подпрограмме ParseMessage. Если я поймаю ошибку и продолжу, программа будет работать нормально. Я игнорирую ошибку для конечной части байтов данных, которые не анализируются должным образом.
[img]https://i.sstatic. net/9WXdv.png[/img]
Пакеты Wireshark также показаны ниже:

А вот еще одна ошибка на другом фрагменте точно такого же SNMP-устройства и OID , просто другой IP-адрес.

Похоже, что завершающая часть данных приводит к тому, что API выдает ошибку, поскольку он не распознает ее как допустимую переменную. Тем не менее, другие пакеты программного обеспечения справляются с этим без появления сообщений об ошибках. Мне придется изменить исходный код Sharp SNMP, чтобы использовать API, если не будет найдено лучшее решение. Моя модификация предполагает обнаружение ошибки и движение дальше. Первая переменная в цикле уже найдена и возвращает правильное значение. Ошибка возникает при продолжении работы с первой переменной, поскольку поток не достиг конца.
Подробнее здесь: https://stackoverflow.com/questions/668 ... n-using-sh