Невозможно запустить класс запуска 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))]
в мой существующий файл автозагрузки исправил его.