Я использую IIS 6 в 2003 году. Я создал DLL-обработчик HTTP, который наследуется от IHttpAsyncHandler.DLL встроена в каталог inetpub \ www8080root \ common \ bin.Он предназначен для перехвата всех запросов.
Веб-сайт настроен на мониторинг порта 8080. Я создал общую папку в каталоге www8080root и создал виртуальный каталог в II6, чтобы указать на него.Я создал файл web.config в общем каталоге
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation debug="true" defaultLanguage="c#" />
<httpHandlers>
<add verb="*" path="*"
type="x2Handler.x2Handler, x2Handler" />
</httpHandlers>
</system.web>
</configuration>
Когда я получаю доступ к http://localhost:8080/common/index.html, обработчик HTTP вызывает сбой w3wp.exe, когда я просматриваю журналы событий, которые вижуошибка в обработчике, которая вызвала сбой.Когда я устанавливаю точку останова в VS 2005, код не срабатывает.
Для отладки мне нужно каким-то образом подключиться к процессу, когда он работает под IIS, но как только он обрабатывает запрос,это падает.
Как отладить DLL-обработчик HTTP под IIS?Я не вижу процесса aspnet_wp.exe, к которому можно подключиться, как описано здесь: C #, отладка HTTPHandler
РЕДАКТИРОВАТЬ: добавив Debugger.Break (), я теперь получаю сообщение «w3wp.exe вызвал точку останова ", и это позволяет мне выбрать среду отладки, но он загружается без символов
No symbols are loaded for any call stack frame. The source code cannot be displayed.
Я установил Сервис-> Параметры-> Отладка-> Включить только мой код Я установил путьв общую папку / папку для загрузки символов из.Любые установленные вручную точки останова по-прежнему отображаются:
The breakpoint will not currently be hit. No symbols have been loaded for this document.
РЕДАКТИРОВАТЬ: при загрузке он ищет символы ntdll.pdb.Даже если я вручную загружаю файл символов для httpHandler, это не имеет значения.
Хотя код определенно выполняется.