| Предыдущий | Следующий |
| MQ_ERROR_ILLEGAL_SORT_PROPID | MQ_ERROR_LABEL_BUFFER_TOO_SMALL |
MQ_ERROR_LABEL_TOO_LONG
Что означает MQ_ERROR_LABEL_TOO_LONG
MQ_ERROR_LABEL_TOO_LONG (0xC00E005D) — Метка сообщения слишком длинная. Её длина не должна превышать MQ_MAX_MSG_LABEL_LEN.
Низкоуровневый API MSMQ часто возвращает свойства через буфер вызывающей стороны и отдельное поле длины. Здесь важно различать ёмкость выделенного буфера, фактическую длину данных и требуемый размер; повтор с тем же размером обычно ничего не меняет.
Что проверить
- Проверьте длину label до отправки и считайте её в тех единицах/ограничении, которые задаёт MSMQ API; обрезка должна быть осознанным решением приложения.
- Выделите буфер по документированному требуемому размеру и повторите вызов с теми же входными данными.
- Проверьте, что между запросом размера и повторным чтением свойство не изменяется конкурентно, если API допускает изменяемую длину.
Как подтвердить исправление
Причина подтверждена, если тот же вызов проходит с корректно рассчитанным размером, а контрольный заведомо малый буфер предсказуемо возвращает тот же код недостаточного буфера без повреждения данных.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
