Как запустить старые DLL на 64-битном сервере

Как запустить старые DLL на 64-битном сервере

Я переношу веб-сайты своей компании с сервера Windows 2003x86 на Windows 2008x64, на котором работает IIS 7.5.

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

Ошибка объекта сервера «ASP 0177: 800401f3»

Server.CreateObject не удалось

/folder/scriptname.asp, строка 24

800401f3

Строка, в которой обнаружена ошибка:

'23 lines of comments  
set A0SQL_DATA = server.createobject("olddllname.Data")  
'the rest of the script 

У меня уже есть этот сайт, работающий в App Pool, который настроен на 32-битный режим. Но я все равно получаю ошибку.

Кто-нибудь сталкивался с этим? Я расстроен, потому что вся информация, которую я ищу, говорит, что мне нужно всего лишь настроить пул приложений на работу в 32-битном режиме. Я сделал это, и это все равно не работает. Что еще я могу проверить?

решение1

Отздесьесли нашли это:

Эта ошибка означает "Недопустимая строка класса" — другими словами, вызов CreateObject не удался, так как объект имени не может быть найден подсистемой OLE. Причины включают:

Вы все-таки не запустили regsvr32 на сервере.

Вы запустили regsvr32, но он сообщил об ошибке.

Кто-то изменил безопасность части реестра, что не позволяет подсистеме OLE читать все или часть дерева HKEY_CLASSES_ROOT.

Имя объекта, который вы пытаетесь создать, написано с ошибкой или является неверным.

Определите, связана ли проблема с разрешениями

Кроме того, поскольку вы переходите с 03 на 08, вы установили надстройку IIS 6 Management Compatibility, которая находится в роли IIS? Я не эксперт по IIS или ASP, поэтому надеюсь, что это поможет.

решение2

Вероятно, ваша DLL является 32-битной DLL, а Application Pools работает в 64-битном режиме. Вам нужно будет изменить Application Pool, в котором работает ваше приложение, на 32-битный пул приложений. Смотрите enable32BitAppOnWin64 по адресу:http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/add

Это можно сделать в пользовательском интерфейсе, выбрав Application Pool в списке AppPools (выберите узел Tree) и включив его с помощью расширенных настроек.

Связанный контент