Что означает код HRESULT 0xC00E0087 (MQ_ERROR_PROPERTIES_CONFLICT)?

 
Предыдущий Следующий
MQ_ERROR_CANNOT_LOAD_MQDSSRV MQ_ERROR_MESSAGE_NOT_FOUND

MQ_ERROR_PROPERTIES_CONFLICT

Что означает MQ_ERROR_PROPERTIES_CONFLICT

MQ_ERROR_PROPERTIES_CONFLICT (0xC00E0087) — Два или более переданных свойства несовместимы. Например, при отправке сообщения нельзя одновременно задать PROPID_M_RESP_QUEUE и PROPID_M_RESP_FORMAT_NAME.

Нативный API MSMQ передаёт свойства массивами PROPID, значений и статусов. Идентификатор свойства, его VARTYPE, размер и допустимость зависят от конкретной операции, поэтому «правильное» свойство для чтения может быть запрещено при создании, отправке или изменении объекта.

Что проверить

  • Сравните набор свойств как комбинацию, а не по одному: например, альтернативные формы одного адреса/response queue могут быть валидны отдельно, но запрещены одновременно.
  • Сверьте, разрешено ли это свойство для конкретной функции и направления (input/output); существование PROPID не означает допустимость во всех API.
  • Для массива свойств проверяйте status каждого элемента: один неверный элемент не должен теряться за общим HRESULT.

Как подтвердить исправление

После изменения сохраните тот же набор свойств и измените только спорный элемент; это позволяет доказать, что исправлен контракт MSMQ API, а не случайно обойдена сама операция.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.