| Предыдущий | Следующий |
| FSRM_E_CANNOT_AGGREGATE | FSRM_E_OBJECT_IN_USE |
FSRM_E_MESSAGE_LIMIT_EXCEEDED
Что означает FSRM_E_MESSAGE_LIMIT_EXCEEDED
FSRM_E_MESSAGE_LIMIT_EXCEEDED (0x80045338) — Достигнут предел количества сообщений, которые текущий контекст конвейера может добавить в набор свойств.
Результат 0x80045338 пришёл из подсистемы «COM/WinRT» при работе с областью «контракт вызываемого interface, аргументы и state объекта». Для сообщения «достигнут предел количества сообщений, которые текущий контекст конвейера может добавить в набор свойств» практический предмет проверки — «fsrm, сообщение, лимит, exceeded».
Что проверить и как подтвердить исправление
Не начинайте с общего сброса компонента: сопоставьте первый отказ с фактическими параметрами операции. При 0x80045338 и условии «достигнут предел количества сообщений, которые текущий контекст конвейера может добавить в набор свойств» снимите фактическое потребление и лимит ресурса в момент отказа, затем уменьшите нагрузку или освободите именно исчерпанный ресурс.
Чтобы локализовать 0x80045338, соберите IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите IFsrmPropertyBag::AddMessage, HRESULT. Затем для 0x80045338 сравните исправный и неуспешный запуск в части «fsrm, сообщение, лимит, exceeded», меняя одно условие за раз.
Коррекция для 0x80045338 должна быть предметной: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. Для 0x80045338 и сообщения «достигнут предел количества сообщений, которые текущий контекст конвейера может добавить в набор свойств» общий сброс допустим лишь как контроль, но не как доказательство причины.
Считайте исправление подтверждённым только после устойчивого повтора исходного сценария без результата 0x80045338 и без обхода штатных проверок.
Документация для результата 0x80045338: AddMessage · Property bag messages · Pipeline OnLoad.
Нужно найти другой код? Найти другой код состояния или ошибки.