Классическая отладка ASP и COM - PullRequest
2 голосов
/ 13 апреля 2011

Я унаследовал классический проект ASP и компонент VB6 (ActiveX .dll), который идет с ним.

Я бы хотел иметь возможность отлаживать этот компонент, выполняя его локально на моей машине.

У меня есть ноутбук с Windows 7 Home Premium (64 бит).

Я установил IIS 7.5 локально (на производстве запущен IIS5), однако, когда я захожу на сайт (локально), я получаю:

Active Server Pages error '00000000'
Create object failed
?
An error occured while create object 'OBJECTNAME'
Microsoft VBScript runtime error '800a01ae'
Class does't support Automation: 'ID of object in global.asa

Я не серверный парень, поэтому у меня нет большого опыта по настройке IIS. Я хочу настроить этот проект локально, чтобы я мог пройти через COM-объект с помощью отладчика.

Что мне нужно сделать, чтобы запустить это?

Так же, как к вашему сведению:

В global.asa у меня есть следующее:

<object runat="server" scope="session" id="ABC" progid="prjABC.clsABC"></object>

Тогда в ASP у меня есть следующий вызов:

if ABC.propertyName = True then

...

В этой строке происходит сбой.

Ответы [ 3 ]

8 голосов
/ 14 апреля 2011

Похоже, пул приложений, в котором работает ваш сайт, настроен на 64-битный режим (по умолчанию).

Переключите его на 32-разрядную версию, щелкнув правой кнопкой мыши по пулу и выбрав Advanced Settings:

enter image description here

Установите Enable 32-Bit Applications на True.

Возможно, вы также захотите настроить управляемый конвейерный режим и установить для него значение Classic, не все приложения Classic ASP будут работать в интегрированном режиме.

1 голос
/ 13 апреля 2011

Если все, что вам нужно сделать, это отладить компонент, может быть проще написать приложение COM, которое использует этот компонент COM.Особенно, если у вас есть источник для компонента, вы можете запустить тестовое приложение из проекта компонента vb6 в качестве приложения отладки.

Поскольку это VB6, возможно, вам придется настроить виртуальную машину XP, чтобы иметь возможность запускатьсяVisual Studio 6.0 (мне никогда не удавалось заставить 6.0 работать на Windows 7).Либо так, либо обновите компонент до Visual Studio 2010.

0 голосов
/ 02 апреля 2013

Если вы хотите запустить 32-битные компоненты в 64-битной среде, вы можете сделать это. Проблема с настройкой IIS для разрешения запуска 32-разрядных компонентов, как описано выше, заключается в том, что в конечном итоге все iis работает под управлением 32-разрядных систем. Это означает, что если это веб-сервер, главное приложение, которое вы запускаете, является 32-разрядным, что снижает преимущество в скорости работы 64-битный компьютер.

Чтобы запустить 32-разрядный компонент в 64-разрядном IIS, его необходимо поместить в службы компонентов. Пуск-> Выполнить-> «comexp.msc» запускает службы компонентов. Затем просто разверните дерево вниз, пока не найдете приложения COM +, и создайте новое пустое приложение (со всеми значениями по умолчанию, установленными как есть). Затем разверните это приложение и щелкните правой кнопкой мыши по компонентам, а затем «новый»> компонент. Установите новый компонент и выберите библиотеки DLL. Это должно позволить 64-битному компоненту просто использовать 32-битные.

...