IIS7 VB6 Отладка - PullRequest
       8

IIS7 VB6 Отладка

5 голосов
/ 20 ноября 2010

Я недавно обновился с XP до Win 7. Раньше я мог отлаживать классическое приложение ASP в VB6. Однако теперь я получаю:

"Ошибка вызова Server.CreateObject при проверке разрешений. Доступ к этому объекту запрещен"

Это происходит только когда я запускаю dll в VB6 и получаю доступ к приложению ASP. До IIS7 это позволит вам войти в VB6 dll. Есть идеи?

Ответы [ 4 ]

3 голосов
/ 16 сентября 2013

У меня недавно был такой же опыт перехода с WinXP на Win7 в нашей среде разработки, и у меня было точно такое же горе с некоторыми из наших старых приложений. Вот как я это исправил.

Чтобы было ясно, наш классический ASP-сайт выполняет вызовы к нашим собственным VB6 .dll, и именно эти файлы .dll я хотел иметь возможность входить и отлаживать.

Включить 32-битные приложения

В разделе «Пулы приложений» щелкните правой кнопкой мыши пул приложений на веб-сайте и выберите «Расширенные настройки».

  • Измените значение «Включить 32-разрядные приложения» на «Истина».

  • Измените «Режим управляемого трубопровода» на «Классический».

Аутентификация ASP

Как и предложил @GregWoods, проверьте данные аутентификации веб-сайта в IIS следующим образом:

  • Анонимная аутентификация - ОТКЛЮЧЕНО
  • ASP.Net Олицетворение - ОТКЛЮЧЕНО
  • Базовая аутентификация - ВКЛЮЧЕНО
  • Аутентификация с помощью форм - ОТКЛЮЧЕНО
  • Аутентификация Windows - ВКЛЮЧЕНА

Запустите приложение VB6 внутри Visual Basic IDE и откройте веб-браузер; перейдите на веб-сайт, и когда код входит во внешний файл VB6 .dll, среда Visual Basic 6 должна теперь остановиться на точках останова, установленных в вашем коде. Та да.

На шаг больше ??

Я также хотел иметь возможность отлаживать сами классические страницы ASP из VS2010 или VS2012 ... что также вполне возможно, но есть дополнительный шаг для добавления в этот список, просто чтобы IIS:

В IIS щелкните веб-сайт, созданный ранее, и в представлении «Функции» нажмите «ASP».

  • Разверните группу параметров «Свойства отладки».

  • Измените параметр «Включить отладку на стороне клиента» на «True».

  • Измените параметр «Включить отладку на стороне сервера» на «True».

  • Нажмите «Применить», чтобы сохранить. (Верхний правый угол панели действий).

Затем, чтобы Visual Studio остановился на точке останова, вам необходимо подключиться к процессу:

  • Перейдите в меню «ИНСТРУМЕНТЫ» и выберите «Присоединить к процессу ...»

  • Измените параметр «Присоединить к» на «Автоматически: собственный код»

  • Выберите процесс w3wp.exe и нажмите «Вложить».

Теперь, когда вы откроете веб-сайт в выбранном вами браузере и перейдете на свой веб-сайт, IIS и VS2010 / VS2012 будут работать совместно, а Visual Studio остановится на любых точках останова.

Надеюсь, это поможет вам.

2 голосов
/ 08 марта 2011

При отладке компонентов VB6 из приложения ASP эта ошибка обычно вызвана проблемой конфигурации DCOM. IDE VB (VB6.exe) не имеет записи DCOM, и по умолчанию учетная запись ISS не имеет надлежащих разрешений.

В этой статье рассказывается, как решить эту проблему. http://support.microsoft.com/kb/q259725/

1 голос
/ 13 января 2012

Я только что столкнулся с той же проблемой, и после применения вышеуказанных «исправлений» проблема все еще была. Я обнаружил, что проверка того, что в веб-приложении отключена анонимная проверка подлинности (вместо этого я использовал проверку подлинности Windows), позволила мне отладить vb6 из классического ASP.

Исходя из этого, я не могу внести вклад в исправление записи реестра или изменения разрешений DCOM (оба из q259725).

Надеюсь, это кому-нибудь поможет!

1 голос
/ 13 ноября 2011

У меня была такая же проблема.KB / q259725 оказалось недостаточно для ее решения.После нескольких дней борьбы я наткнулся на эту статью: http://support.microsoft.com/kb/936296. После установки исправления моя проблема была решена.Надеюсь, это поможет.Эта проблема очень специфична для окружающей среды.Вы можете увидеть его только на 2003 сервере SP2.

Я скачал это исправление здесь: http://thehotfixshare.net/board/index.php?autocom=downloads&showfile=3287

...