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

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

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

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

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

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

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

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

[assembly: OwinStartup(typeof(Startup))]

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

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

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

2 ответа

Решение

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

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

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

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

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

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

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