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

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

Область применения: Windows 10 — все выпуски
Исходный номер базы знаний: 890425

Симптомы

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

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

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

Причина

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

Разрешение

Для решения этой проблемы воспользуйтесь одним из описанных ниже способов.

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

Состояние

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