Получение фабрики COM-класса для компонента с CLSID {XXXX} перестало работать из-за следующей ошибки: 80040154

Обновление: Похоже, что эти значения сообщают ширину и высоту области просмотра во время создания вкладки, и они не меняются при повороте, поэтому это метод не может быть использован для обнаружения устройства !

Вы можете использовать либо screen.availWidth, либо screen.availHeight, так как они кажутся разными для iPad Mini и iPad 2.

iPad Mini

screen.availWidth = 768
screen.availHeight = 1004

iPad 2

screen.availWidth = 748
screen.availHeight = 1024

Источник: http://konstruktors.com/blog/web-design/4396-detect-ipad- мини-JavaScript /

271
задан Randy supports Monica 2 November 2009 в 06:59
поделиться

4 ответа

В VS - свойства проекта - во вкладке Сборка - платформа target = X86

375
ответ дан 23 November 2019 в 02:16
поделиться

Проблема в том, что серверный процесс 64-битный, а библиотека 32-битная, и он пытается создать компонент COM в том же процессе (внутрипроцессный сервер). Либо вы перекомпилируете сервер и сделаете его 32-битным, либо оставите сервер без изменений и сделаете компонент COM вне процесса. Самый простой способ отключить COM-сервер - создать приложение COM + - Панель управления -> Администрирование -> ComponentServices.

14
ответ дан 23 November 2019 в 02:16
поделиться

Похоже, ваша служба была построена против «любого процессора», что вызывает ошибки в 64-битных системах, где вы используете компоненты COM. Вам необходимо собрать его для x86 .

Веб-сайт, вероятно, работает как 32-разрядный процесс, поэтому он может использовать компонент. При построении решения для x86 служба будет работать как 32-разрядная.

59
ответ дан 23 November 2019 в 02:16
поделиться

Я столкнулся с очень похожей проблемой.

Мне нужно было использовать старую 32-разрядную библиотеку DLL в веб-приложении, которое разрабатывалось на 64-разрядной машине. Я зарегистрировал 32-разрядную библиотеку DLL в папке windowssysWOW64, используя версию regsrv32 в этой папке.

Вызовы сторонней библиотеки DLL выполнялись из модульных тестов в Visual Studio, но завершались сбоем из веб-приложения, размещенного в IIS на том же компьютере с ошибкой 80040154.

Изменение пула приложений на «Включить 32-разрядные приложения» решило проблему.

58
ответ дан 23 November 2019 в 02:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: