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&nori=N&dir=55555050555000000000&11/05/2015 16:05:24" style="margin-left:20px">
если я пытаюсь загрузить это непосредственно я получаю 500 ошибку (не журнал ошибок, к сожалению) а.
Работает на IIS6, не работает на IIS8.5. Может ли кто-нибудь осветить миграцию DLL на стороне сервера ActiveX в IIS8.5? Одна вещь, которую я не делал, это проверить зависимости для DLL, может ли кто-нибудь рекомендовать инструмент для этого? Я предполагаю, что с Windows 2003 до конца жизни многие люди сталкиваются с такими проблемами.
Включить обнаружение неудачных запросов? Есть ли в DLL интерфейс, который вы можете вручную вызвать из .VBS для тестирования? –
Скорее всего, ваш пул приложений работает в 64-битном режиме, а DLL - 32 бит. Попробуйте установить «Включить 32-битное приложение» в значение true в дополнительных настройках параметров в пуле приложений. –
Не знаю об интерфейсе, поскольку у меня нет исходного кода или какой-либо документации (приложение составляет 12 лет), и я не ошибаюсь, трассировка запроса не установлена. – Phil