Если вы написали DLL расширения Интернет-сервера, может быть заинтересован в получении его под управлением отладчика так что вы можете отслеживать его выполнение, установив точки останова или монитора значения переменных после вызова метода расширения. Подъем Microsoft Internet Information Server (IIS) и работает с библиотекой DLL в отладчике это немного сложнее. Вам будет нужно сначала найти тихий сервера, где можно отлаживать библиотеки DLL в контролируемых условиях. После того как вы нашли такой ресурс, вы можете начать отладку библиотека DLL.
Из-за различий между версии 3.0 и 4.0 IIS, важно знать, какую версию вы будете использовать для отладки DLL.
Для отладки DLL с помощью IIS 3.0 расширения Интернет сервера выполните следующие действия:
-e W3Svc
Отладка советы
IIS может запускаться как интерактивное приложение, что делает намного проще отладки. Для этого вам нужно внести некоторые изменения в вашу систему. Для учетной записи пользователя, которую вы собираетесь запускать сервер под вам нужно добавить несколько привилегии.
Чтобы добавить привилегии, запустите диспетчер пользователей. (Если вы используете Windows NT 3.51, запустите MUSRMGR.EXE. Если вы используете Windows NT 4.0, запустите USRMGR.EXE.) Нажмите кнопку Права пользователя из меню политики . Установите флажок Показать расширенные права пользователя . Выберите акт как часть операционной системы из списка справа и добавьте учетную запись пользователя.
Повторите этот процесс с Создание аудитов безопасности (и в раскрывающемся списке справа). Убедитесь, что остановить все службы Интернета (WWW, ftp и gopher) и INETINFO.EXE не выполняется (используйте список задач для проверки). Выйдите из системы и войти снова. Затем вы можете загрузить IIS с помощью командной строки:
INetInfo.Exe -e W3Svc
Чтобы загрузить IIS в режиме отладчика (к примеру, в WinDbg), используйте следующую командную строку:
WinDbg INetInfo.Exe -e W3Svc
Ты готов к работе. В Visual C++ выберите меню построить команду для отладки и нажмите кнопку Go. Это действие запускает службу публикации в WWW, и отладчик будет знать символов в библиотеке DLL. Можно игнорировать предупреждение, что файл не имеет отладочной информации.
При закрытии Visual C++, сохраните рабочую область для INETINFO.EXE. Таким образом, можно избежать, вводить каждого случая установить параметры для сеанса отладки. Просто откройте INETINFO.MDS файл рабочей области, когда вы будете готовы снова запустить отладчик.
Кэшированные DLL
Можно настроить параметр реестра в HKEY_LOCAL_MACHINE/система/CurrentControlSet/услуги/W3SVC/параметры/CacheExtensions чтобы сервер повторно инициализировать библиотеки DLL каждый раз, когда они используются. Если этот параметр имеет значение 1, сервер будет хранить библиотеки DLL, загруженной в память как можно дольше. Это значение по умолчанию для сервера, так как он помогает достичь максимальной производительности сервера и должно быть изменено только в том случае, если вы используете сервер для отладки. Если вы делаете параметр 0, сервер будет всегда загрузить DLL расширения каждый раз, когда они используются.
Заставляет сервер для перезагрузки библиотеки DLL является полезным, когда библиотека DLL может разбивать или нарушить любые данные каждого экземпляра, он сохраняет. Заставить сервер для повторной инициализации библиотеки DLL, вы можете получить ваш DLL обратно в предсказуемой государство с минимальными усилиями. Не забудьте проверить DLL с использованием обычных CacheExtensions, однако, чтобы убедиться, код библиотеки DLL не полностью зависимыми от этой начальное состояние.
Существует несколько способов создать условия для отладки ваши серверные компоненты и библиотеки DLL расширения Интернет сервера при использовании служб IIS 4.0 или более поздней версии. При использовании отладчика, способного к процессам Windows NT, можно использовать эту функцию для отладки компонента или расширение. К примеру если отладка выполняется с помощью Visual C++, выполните следующие действия:
Если вы используете отладчика не может подключиться к процессам Windows NT, выполните следующие шаги для создания соответствующей среды отладки:
Отладчик = lt; DebuggerExeName > где DebuggerExeName — это полный путь к отладчику вы используете.
Когда запускается служба публикации World Wide Web, будет также запущен отладчик. Теперь вы можете установить соответствующие точки останова в DLL расширения Интернет-сервера.
Вы не сможете установить точки останова в исходном коде компонента до тех пор, пока компонент загружен в память. Для этого запустите Internet Explorer и просмотр.ASP-странице, содержащей объект. Как только страница загружается, вы сможете установить точки останова в компоненте. Нажмите кнопку обновить для просмотра страницы снова и запустить выбранные точки останова. Если компонент не может быть загружен даже один раз (к примеру, если ошибка происходит в код запуска компонента), вам нужно загрузить DLL компонента до начала сеанса отладки. (См. шаг 11 ниже).
В некоторых случаях не удается использовать любой из двух процедур, изложенных выше. Если у вас есть трудности с использованием любой из этих стратегий, существует третий подход, который был описан в предыдущих версиях IIS. Этот третий подход требует создание привилегий безопасности Windows NT, а также вносить изменения в реестр. Он будет также отключить возможность запуска служб IIS в качестве службы. Этот подход должен использоваться только если предыдущие две стратегии не.
{61738644-F196-11D0-9953-00C04FD919C1} / / IIS WAMREG admin служба
{9F0BD3A0-EC01-11D0-A6A0-00A0C922E752} / / расширение IIS Admin крипто
{A9E69610-B80D-11D0-B9B9-00A0C922E750} / / Служба IISADMIN
LocalService ключевое слово можно найти в дополнительные подразделы AppID.
C:\WINNT\System32\Inetsrv\Inetinfo.exe
w3svc -e
Примечание После завершения сеанса отладки, вы должны отменить шаги 5 — 1 для восстановления предыдущих параметров и позволяют IIS для запуска в качестве службы.
Технические примечания по номеру |nbsp; Технические примечания по категориям