отладка HTTP-обработчика - PullRequest
       23

отладка HTTP-обработчика

0 голосов
/ 03 января 2012

Я использую 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, это не имеет значения.
Хотя код определенно выполняется.

Ответы [ 2 ]

2 голосов
/ 03 января 2012

Добавьте Debugger.Break() за несколько строк до возникновения исключения. Это должно дать вам всплывающее окно с просьбой присоединить отладчик.

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

Проблема заключалась в том, что .Net был установлен до версии IIS. Я заметил, что кнопка «Изменить конфигурацию» была отключена и нашел этот сайт http://www.warfiblog.com/edit-configuration-disabled. Следуя инструкциям:

You will need to go to Start -> Microsoft Visual Studio 2005 -> Visual Studio Tools -> Visual Studio 2005 Command Prompt. On the prompt write down this command:
aspnet_regiis -r
The above command will register dot net with IIS and now the button will also be enabled.

При этом исправлена ​​ошибка отладки!

...