Укажите состояние подразделения, которое будет использоваться при создании экземпляра COM-объекта из процедуры

Я создал COM-объект в .NET и зарегистрировал его как серверное приложение COM + с Pooling = 1, используя regsvcs . В настоящее время я ищу ошибку, и поэтому мне нужно убедиться, что этот COM-объект работает в STA, а не в MTA. Как я могу это указать?
Мне поможет любое из следующего:

  • Параметр в оснастке «Службы компонентов»
  • Параметр / фрагмент кода, который заставляет COM-объект разрешать только STA, но не оба.
  • Параметр / фрагмент кода в C # на вызывающая сторона, которая сообщает COM +, что COM-объект должен быть инициализирован с помощью STA

Обновление:
Я попытался вручную изменить запись ThreadingModel в реестре с Оба на Квартира . Это тоже не помогло, потому что, когда я пытаюсь создать экземпляр COM-объекта, я получаю COMException (0x80110802), а программа просмотра событий сообщает:

Модель потоковой передачи компонента, указанного в реестре, несовместима с регистрационной базой данных. Неисправный компонент: < MyComponent >

Есть ли другое место, где мне нужно изменить модель потоков? Например, в той «регистрационной базе данных»? Где его найти?

Спасибо!

5
задан Daniel Hilgarth 20 April 2011 в 08:24
поделиться