Обновление: Похоже, что эти значения сообщают ширину и высоту области просмотра во время создания вкладки, и они не меняются при повороте, поэтому это метод не может быть использован для обнаружения устройства !
Вы можете использовать либо screen.availWidth
, либо screen.availHeight
, так как они кажутся разными для iPad Mini и iPad 2.
screen.availWidth = 768
screen.availHeight = 1004
screen.availWidth = 748
screen.availHeight = 1024
Источник: http://konstruktors.com/blog/web-design/4396-detect-ipad- мини-JavaScript /
В VS - свойства проекта - во вкладке Сборка - платформа target = X86
Проблема в том, что серверный процесс 64-битный, а библиотека 32-битная, и он пытается создать компонент COM в том же процессе (внутрипроцессный сервер). Либо вы перекомпилируете сервер и сделаете его 32-битным, либо оставите сервер без изменений и сделаете компонент COM вне процесса. Самый простой способ отключить COM-сервер - создать приложение COM + - Панель управления -> Администрирование -> ComponentServices.
Похоже, ваша служба была построена против «любого процессора», что вызывает ошибки в 64-битных системах, где вы используете компоненты COM. Вам необходимо собрать его для x86
.
Веб-сайт, вероятно, работает как 32-разрядный процесс, поэтому он может использовать компонент. При построении решения для x86
служба будет работать как 32-разрядная.
Я столкнулся с очень похожей проблемой.
Мне нужно было использовать старую 32-разрядную библиотеку DLL в веб-приложении, которое разрабатывалось на 64-разрядной машине. Я зарегистрировал 32-разрядную библиотеку DLL в папке windowssysWOW64, используя версию regsrv32 в этой папке.
Вызовы сторонней библиотеки DLL выполнялись из модульных тестов в Visual Studio, но завершались сбоем из веб-приложения, размещенного в IIS на том же компьютере с ошибкой 80040154.
Изменение пула приложений на «Включить 32-разрядные приложения» решило проблему.