Ошибка при вызове многих объектов из одного процесса в другой с помощью COM+: недостаточное хранилище доступно для выполнения этой операции (0x8007000e)

В этой статье предоставляется решение проблемы, при которой вызов многих объектов из одного процесса в другой с помощью Microsoft COM+ не удается.

Применяется к:   Windows 10 — все выпуски
Исходный номер КБ:   890425

Симптомы

При вызове многих объектов из одного процесса в другой с помощью Microsoft COM+вы можете получить следующее сообщение об ошибке:

Недостаточное хранилище доступно для выполнения этой операции (0x8007000e)

При присоединении отладки к клиентской процедуре можно увидеть исключения первой возможности 8007000E, о чем сообщает отладка.

Причина

Эта проблема вызвана ограничением в уровне удаленного вызова процедуры (RPC), где из одного процесса в другой можно вызвать только 256 уникальных интерфейсов. Эта проблема обычно возникает при использовании com+ или Microsoft Transaction Server со многими объектами в программе или пакете.

Решение

Чтобы устранить эту проблему, используйте один из следующих методов:

  • Разделите объекты между несколькими процессами.
  • Уменьшите количество интерфейсов, которые называются между одним процессом и другим.

Состояние

Корпорация Майкрософт подтвердила, что это проблема в продуктах Майкрософт, перечисленных в начале этой статьи.