Невозможно запустить класс запуска OWIN для запуска в IIS Express после переименования файла проекта ASP.NET

У меня есть ситуация, когда мне нужно было изменить имена решений и проектов на веб-сайте WebAPI на основе OWIN. До этого изменения все отлично работало, и, насколько мне известно, переименование было успешным из-за следующего:

  • Решение построено отлично, и все мои модульные тесты успешно выполняются как локально, так и на сервере сборки TeamCity.
  • Приложение отлично работает на нашем тестовом сервере (полный IIS 8) и в процессе производства (также полный IIS 8)

Моя проблема в том, что после этого переименования я не могу запустить класс запуска, когда я запускаю его в IIS Express, независимо от того, что я пытаюсь сделать. Я подозреваю, что есть некоторая кешированная папка, которая содержит несколько классов Startup на моей машине, потому что в нашей тестовой среде мне нужно было удалить все старые библиотеки DLL, которые использовали предыдущее имя, прежде чем все стало работать.

Я знаю, что запуск не выполняется, потому что у меня есть точки останова, которые не срабатывают (и фактически не включены, потому что VS не видит загруженные символы):

enter image description here

Вот что я пробовал до сих пор:

  • Удаленный IIS Express 10.0 (у меня есть VS 2015 RC на моей машине dev), очистите все папки IIS, а затем повторно установите IIS Express 8
  • Убраны все временные папки ASP.NET на моей машине dev
  • Очистить все папки obj/bin в моем собственном решении

В моем случае я указываю класс Startup, используя следующее в моем Startup.cs:

[assembly: OwinStartup(typeof(Startup))]

... но опять же, все это отлично работало, прежде чем я попытался переименовать решение и проекты. Я не думаю, что это общая проблема IIS Express, потому что я могу успешно запускать другие локальные решения на основе OWIN (например, наша реализация IdentityServer3) без проблем... хотя это решение не требовало каких-либо изменений имени.

Есть ли другой аспект использования IIS Express, который может быть сработал, изменив имя решения или файл проекта?

Для справки я уже рассмотрел следующие возможные причины (без везения): - OwinStartup не запускается... Почему? - Отсутствует класс запуска OWIN - Очистка временных файлов ASP.NET - OwinStartup не стреляет

Ответ 1

Пока я не могу полностью объяснить, почему это решает проблему, я смог исправить это, изменив мои проекты для создания в обычную папку bin/.

Я прошу прощения за то, что не упоминал об этом в своем первоначальном вопросе, потому что я не думал, что это имеет значение, но ранее я изменил свой проект ASP.NET на создание bin\Debug и bin\Release в зависимости от конфигурации. Это показалось, что все работает нормально, но вызвало эту проблему, как только я изменил название проектов.

Ответ 2

Я знаю, что это старый, но просто хотел добавить, что я наткнулся на это с помощью настраиваемого шаблона. В моем случае у меня было рабочее решение с запуском, он сделал шаблон, но шаблон не работал.

Приходите, чтобы узнать, потому что у нового проекта было место в его названии. Поэтому добавление

[assembly: OwinStartup(typeof(myProjectName.Startup))]

в мой существующий файл автозагрузки исправил его.