Как запустить aspnet_wp.exe без запуска события Application_Start

Я пытаюсь отладить веб-службу (Windows XP SP3, VS 2008, ASP.NET 2, VB.NET).

По большей части, если рабочий процесс asp.net уже загружен, я могу запустить форму Windows, которая вызывает веб-службу, присоединиться к aspnet_wp.exe в Visual Studio, а затем выполнить отладку, сколько душе угодно, но поймать запуск приложения событие в global.asax - это боль.

Если я сброшу IIS, конечно, не будет процесса для подключения, пока не закончится событие запуска приложения.

Единственный способ, который я нашел для этого, - создать отдельную страницу aspx, установить ее как стартовую и запустить ее - тогда я могу остановиться на перерыве в событии запуска приложения, но необходимость поддерживать страницу вызывает неудобства. это, по сути, просто тестовая заглушка.

Есть идеи для чего-нибудь более аккуратного? Типа: «Присоединяйтесь к процессу, как только он начнется».

Еще лучше, конечно, было бы не подключать явно к aspnet_wp.exe, чтобы иметь возможность отлаживать веб-службу, но я тоже не нашел способа сделать это.

Спасибо за любые предложения.

Есть ли у вас какие-либо причины не использовать встроенный веб-сервер VS2008 (Cassini) для отладки веб-службы? Я думаю, что для этой цели это более естественный выбор, чем IIS.

Darin Dimitrov 12.01.2009 23:49

@Darin .. Это мысль ... нет, не совсем, кроме общего предпочтения как можно более реалистичной тестовой среды и привычки. Я тоже выставляю веб-службу извне, но нет причин не использовать ее для тестирования. Я попробую, спасибо.

ChrisA 12.01.2009 23:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
2 173
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте вставить это в событие запуска приложения, он должен каждый раз запускать ваш отладчик. Просто не забудьте вынуть его, когда закончите :-).

System.Diagnostics.Debugger.Launch()

Или еще лучше, в OnStart вашего WebService:

Protected Overrides Sub OnStart(ByVal args() As String)
    ' Add code here to start your service. This method should set things
    ' in motion so your service can do its work.
    System.Diagnostics.Debugger.Launch()
End Sub

Обновление: добавление этого комментария к ответу, поскольку это хорошая идея:

Wrap this in #if DEBUG and it's a bit safer (won't end up slipping something so catastrophic into test/production environments). – sliderhouserules

Ну конечно запускает отладчик! Спасибо за это ... Я надеялся на что-то менее радикальное, но, надеюсь, мне не нужно будет слишком часто отлаживать событие App_Start, так что удаление этой строки не будет слишком сложной задачей.

ChrisA 13.01.2009 02:05

Оберните это в #if DEBUG, и это будет немного безопаснее (не приведет к тому, что что-то столь катастрофическое попадет в среду тестирования / производства).

sliderhouserules 13.05.2009 22:27

Другие вопросы по теме