2015-05-11 7 views
0

DLL ActiveX не работает на IIS 8.5ActiveX не DLL работает на IIS 8.5

У нас есть классический ASP приложение, которое использует и DLL ActiveX для создания изображения на лету. Это была рабочая находка Window 2003 с IIS6. Но мы переносим его на Windows 2012 и IIS 8.5. DLL зарегистрирована на сервере, настроена для запуска под собственным пулом приложений (без управляемого кода, режим классического конвейера). Это виртуальный каталог, настроенный для запуска в качестве приложения, и имеет сопоставление обработчика для * .dll, чтобы указать на DLL для всех глаголов с правами Execute Access, которые являются одинаковой конфигурацией для IIS6.

код ASP для визуализации HTML призывающую DLL выглядит следующим образом:

<%dim SpokeData 
dim JobName 
dim NumOfExperts 
dim ThisDirNo 
dim ThisSel 
dim PAPIType 
dim JobType 
dim SpokeDataShort 
SpokeData = trim(Request.QueryString("Data")) 
JobName = trim(Request.QueryString("JobName")) 
NumOfExperts = trim(Request.QueryString("Exp")) 
PAPIType = trim(Request.QueryString("PAPIType")) 
JobType = trim(Request.QueryString("JobType")) 
CalcDate = trim(Request.QueryString("Date")) 
For ScaleNo = 1 to 20 
    ThisSel = Mid(SpokeData,(ScaleNo*2),1) 
    ThisDirNo = Mid(SpokeData,(ScaleNo*2)-1,1) 
    If ThisSel = "1" then SpokeDataShort = SpokeDataShort & ThisDirNo else SpokeDataShort = SpokeDataShort & "0" 

Next 
Response.Write("<div id='Wheel'><img style='margin-left:20px' src='http://www.example.com/jpwheel/jpwheel.dll?Handler=Render&nori=" & PAPIType & "&dir=" & SpokeDataShort & "&" & Now & "'></div>") 
%> 

HTML, то lookslike это: <img src="http://www.example.com/jpwheel/jpwheel.dll?Handler=Render&amp;nori=N&amp;dir=55555050555000000000&amp;11/05/2015 16:05:24" style="margin-left:20px"> если я пытаюсь загрузить это непосредственно я получаю 500 ошибку (не журнал ошибок, к сожалению) а.

Работает на IIS6, не работает на IIS8.5. Может ли кто-нибудь осветить миграцию DLL на стороне сервера ActiveX в IIS8.5? Одна вещь, которую я не делал, это проверить зависимости для DLL, может ли кто-нибудь рекомендовать инструмент для этого? Я предполагаю, что с Windows 2003 до конца жизни многие люди сталкиваются с такими проблемами.

+0

Включить обнаружение неудачных запросов? Есть ли в DLL интерфейс, который вы можете вручную вызвать из .VBS для тестирования? –

+0

Скорее всего, ваш пул приложений работает в 64-битном режиме, а DLL - 32 бит. Попробуйте установить «Включить 32-битное приложение» в значение true в дополнительных настройках параметров в пуле приложений. –

+0

Не знаю об интерфейсе, поскольку у меня нет исходного кода или какой-либо документации (приложение составляет 12 лет), и я не ошибаюсь, трассировка запроса не установлена. – Phil

ответ

2

Проблема была вызвана неправильным отображением обработчика. Я установил его как карту скриптов. Она должна быть модуль Mapping со следующими деталями:

  • Запрос путь: * .dll
  • Исполняемые: Путь к jpwheel.dll
  • Модуль: IsapiModule
  • Имя: jpwheel

Запрос Ограничение: Все Глаголы, доступ требуется: Script

Feature Право доступ: чтение, сценарии, выполнение

Итак, теперь он работает.

Смежные вопросы