Как отладить метод, который я настроил, используя атрибут сборки PreApplicationStartMethodAttribute при работе в IIS 7.5? - PullRequest
5 голосов
/ 23 мая 2011

Я объявил PreApplicationStartMethodAttribute на уровне сборки следующим образом:

[assembly: PreApplicationStartMethod(typeof(MyApp.Global), "InitializeApplication")]

См. это объяснение для более подробной информации об этом.

Вот декларация InitializeApplication:

public class Global : HttpApplication
{
    public static void InitializeApplication()
    {
        // Initialization code goes here...
    }
}

Я запускаю приложение на локальном экземпляре IIS 7.5 и хочу отладить метод InitializeApplication. Я установил на нем точку останова, но она не получила удара.

Я полагаю, что код выполняется при запуске пула приложений, что, насколько мне известно, находится до того момента, когда я нажму F5 в Visual Studio.

Я пытался подключить отладчик к любому процессу, связанному с IIS, который я смог найти, но безрезультатно.

Я также понимаю, что могу отлаживать с помощью Cassini, но мне нужно исправить здесь проблему, связанную с IIS.

Итак, вопрос: как я могу отладить PreApplicationStartMethodAttribute указанный метод?

Ответы [ 2 ]

3 голосов
/ 23 мая 2011

Попробуйте использовать IIS Express локально, возможно, будет проще подключить отладчик к его процессу.

0 голосов
/ 15 мая 2018

Вы можете вставить System.Diagnostics.Debugger.Break(); в код инициализации.Когда отладчик подключен, эта точка останова всегда срабатывает.

Если вы хотите подключиться к процессу, запущенному в IIS, используйте «Присоединить к процессу» (Ctrl + Alt + p) и найдите w3wp.exe,вы должны быть в состоянии определить правильный процесс по имени пользователя (пользователь apppool) и типу (управляемый).Если процесс отсутствует в списке, убедитесь, что вы отметили «Показывать процессы от всех пользователей».Конечно, процесс должен быть запущен, поэтому вам может понадобиться сначала запустить запрос.

Хорошим подходом будет Опубликовать вашего проекта в локальной папке, которую вы используете какбазовый путь в IIS, в отличие от указания IIS непосредственно на вашу кодовую базу.Если вы сделаете это, процесс w3wp обычно не нужно перезапускать после повторной публикации, так что вы можете легко подключить отладчик в последующих попытках отладки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...