Я пытаюсь запустить сценарий VBScript, который использует 7-летний сторонний 32-разрядный COM-компонент
в Windows Server 2008 R2 с узлом 32-разрядных сценариев командной строки SysWOW64 \ cscript.exe. Когда я вызываю CreateObject для класса, он кажется успешным, но в первый раз, когда я пытаюсь использовать свойство или метод (я пробовал несколько разных) для объекта, он дает мне «катастрофический сбой». У меня есть идентичные результаты с SysWOW64 \ wscript.exe, за исключением того, что, конечно, мое сообщение об ошибке появляется в окне msgbox вместо окна командной строки.
Я думаю, что это связано именно с 64-битными хостами сценариев из-за следующего:
- Эквивалентный классический ASP-сценарий, вызывающий тот же компонент и использующий 95% того же кода, корректно работает на том же сервере, а IIS настроен на поддержку 32-разрядного COM.
- Один и тот же VBScript корректно работает на 32-разрядной машине с Windows XP и 32-разрядной машине с Windows Server 2003.
- Компонент дает сбой точно так же на моем 64-битном компьютере с Windows 7.
Мой поиск в Google для решения этой проблемы в основном выявил множество различных проблем, которые были решены путем помещения компонента COM на панель инструментов в Visual Studio. Очевидно, что это решение здесь не применимо.
Мои вопросы:
- Существует ли основная проблема, которая всегда стоит за «катастрофическим отказом» хоста сценариев Windows, вызывающего компонент COM?
- Есть ли место в оснастке конфигурации или в реестре, где мне нужно внести изменение, аналогичное изменению, которое я должен был внести в пул приложений IIS, на «Включение 32-разрядных приложений»?
- Есть ли общее место в средстве просмотра событий Server 2008 R2, на которое я должен обратить внимание, чтобы узнать, есть ли какие-либо дополнительные сведения о сбое, если он окажется специфичным для этого компонента?
Заранее спасибо.