HttpApplication.Application_Start не срабатывает после обновления до Web API 2

Я обновил приложение до Web Api 2, и Application_Start не срабатывал после обновления, запущенного в IIS Express. Я следовал официальному пути обновления по адресу http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api.-project-to-aspnet-mvc-5-and-web-api-2 и трижды проверил мои настройки.

Приложение использует StructureMap MVC 4 для внедрения зависимостей. Таким образом, PreApplicationStartMethod WebActivator запускается, и преобразователь зависимостей устанавливается правильно. После этого никакой другой казни не прослеживается. Я включил «Редактировать и продолжить», но точка останова в начале Application_Start не сработала.

Вот все, что я пробовал: а. Отключите PreApplicationStartMethod и запустите приложение b. Измените параметры компиляции файла Global.asax и кода c. Создайте еще один проект WebApi2 с аналогичной структурой и настройте его без фактического кода, и он отлично работает.

Я очистил и запустил приложение; также почистил папку Temp ASP.NET

Благодарим за помощь в решении этой проблемы.


person paneer    schedule 30.10.2013    source источник


Ответы (4)


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

Просто отредактируйте файл web.config (просто добавьте пробел) и сохраните его, это приведет к перезапуску вашего http-приложения.

person user2674389    schedule 30.10.2013
comment
Я знаю об этом; Я не упомянул, что когда я пытаюсь отредактировать глобальный файл, диалоговое окно «Редактировать продолжить» говорит, что сборка не загружена. Я собираюсь удалить глобальный файл, закрыть решение, повторно добавить и посмотреть, что произойдет. - person paneer; 31.10.2013
comment
ах! извините, неправильно прочитал ваш ответ. В нем говорится, что мне нужно остановить сеанс отладки, когда я пытаюсь сохранить файл web.config, даже если я включил «Редактировать и продолжить». Есть идеи, почему? - person paneer; 31.10.2013
comment
Я думаю, я могу исследовать больше и продолжить. Интересно, что точка останова в Application_Start нового приложения API срабатывает каждый раз без внесения изменений в web.config. - person paneer; 31.10.2013

Поместите оператор Debugger.Break(); в свой Application_Start, а затем выполните iisreset или перезапустите свой пул приложений, затем нажмите F5. Должно появиться окно отладчика Just in time, если точка останова не прерывает его.

person demoncodemonkey    schedule 27.01.2014

Убедитесь, что IIS Express закрыт, затем снова нажмите F5, чтобы увидеть, не нажат ли Application_Start.

person Alex Dresko    schedule 30.10.2013
comment
Я так уже делал - не помогло. Для удовольствия я изменил порт для запуска приложения и попытался, но это тоже не сработало. - person paneer; 31.10.2013

Я только что столкнулся с той же проблемой. У метода global.asax.cs Application_Start() не было параметров. Как только я добавил стандартные Application_Start(object sender, EventArgs e), метод сработал.

person SeriousM    schedule 19.01.2016