Я считаю, что невозможно отладить VB6 IIS Application
в IDE на любой версии Windows, более новой, чем Windows XP (возможно, ситуация похожа на серверную версию Windows).Основной причиной проблемы, по-видимому, являются существенные различия между IIS 6 и IIS 7+.Конечно, нет официальной документации по этой теме, поэтому я более подробно остановлюсь ниже.
Во-первых, имеет смысл подвести итог проблемы.Многие хорошие люди, кажется, забывают, что IIS Application
- это точный термин, относящийся к специальному типу проекта VB6 в этом контексте.Я смог воспроизвести ошибку, выполнив следующие действия на Win7 Ultimate x64 SP1, Win7 Ultimate x86 SP1 и Vista Enterprise x86 SP2:
- Установите VB6 и SP6.
- Создать новый
IIS Application
проект: - Сохранить проект.
- Выберите Выполнить -> Пуск (F5) для отладки проекта.
- Выберите любойвыберите на вкладке «Отладка» и нажмите ОК:
Сразу после этого в IDE VB6 появится сообщение об ошибке:
Давайте рассмотрим, чтопроисходит, когда тот же сценарий выполняется в Windows XP.Когда начинается отладка VB6 IIS Application
:
- VB6 IDE запускает службу IIS, если она не запущена:
- VB6 IDE предлагает выбрать виртуальный каталог IIS:
Все это происходит в Windows XP до активации WebClass
.Процесс не доходит до этого этапа в Windows 7.
Ясно, что VB6 IDE пытается выполнить некоторые административные задачи в IIS, чтобы иметь возможность отладки WebClass
.Можно углубиться немного глубже с помощью Process Monitor и API Monitor .Понятно, что VB6.exe использует COM-интерфейсы IIS Admin Service.Плохая новость заключается в том, что IIS 7+, в отличие от предыдущих версий, не использует метабазу и в IIS 7+ нет службы администрирования IIS.Можно установить IIS Metabase and IIS6 compatibility
компонент, который, по идее, должен позволять приложениям, использующим Metabase, продолжать работу с IIS 7 +:
К сожалению, его установка не решает проблему.проблема.
Есть предположения, что ваша проблема может быть вызвана неадекватными разрешениями запуска и активации для компонентов COM.Я боюсь, что все эти предложения бесполезны.Подобные ошибки всегда сопровождаются связанными событиями ошибок в журнале системных событий.В этом случае таких событий нет.