Я перемещаю веб-сайты своей компании с сервера 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
У меня уже есть этот сайт, работающий в пуле приложений, для которого установлен 32-битный режим. Но я все равно получаю ошибку.
Кто-нибудь испытал это? Я расстроен, потому что вся информация, которую я ищу, говорит, что все, что мне нужно сделать, это настроить пул приложений для работы в 32-битном режиме. Я сделал это, но это все еще не работает. Что еще я мог проверить?
Из Вот если нашел это:
Эта ошибка означает «Недопустимая строка класса» - другими словами, вызов CreateObject завершился неудачно, поскольку объект имени не может быть найден подсистемой OLE. Причины включают:
В конце концов, вы действительно не запускали regsvr32 на сервере.
Вы запустили regsvr32, но он сообщил об ошибке.
Кто-то изменил систему безопасности в части реестра, которая не позволяет подсистеме OLE читать все или часть дерева HKEY_CLASSES_ROOT.
Имя объекта, который вы пытаетесь создать, написано неправильно или неверно.
Определите, не проблема ли это с разрешениями
Кроме того, поскольку вы переходите с 03 на 08, установили ли вы надстройку совместимости управления IIS 6, которая находится в роли IIS? Я не специалист по IIS или ASP, поэтому надеюсь, что это поможет.
Что, вероятно, происходит, так это то, что ваша DLL является 32-битной DLL, а пулы приложений работают в 64-битной версии. Что вам нужно сделать, так это изменить пул приложений, в котором выполняется ваше приложение, на 32-разрядный пул приложений. См. Enable32BitAppOnWin64 по адресу: http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/add
Вы можете сделать это в пользовательском интерфейсе, выбрав Application Pool в списке AppPools (выберите узел Tree) и используя Advanced Settings, чтобы включить это.