Почему IISExpress дает 404, когда работает сервер IIS - PullRequest
0 голосов
/ 11 октября 2018

Я использую Visual Studio 2017 версии 15.8.7 для Windows 10.

Эта проблема возникает для сайтов Asp.net MVC 4 и Web Api 2. Не для сайтов Aspnet.Core (пока)

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

Каждый раз, когда я запускаю отладчик и получаю 404, это событие записывается.

Каталог, указанный для кэширования сжатого содержимого C: \ inetpub \ temp \ IIS Временные сжатые файлы \ Clr4IntegratedAppPool недопустим.Статическое сжатие отключено.

Что я пробовал.

  • Удалите VS / IISExpress и переустановите, включая удаление всех папок в программных файлах
  • Создатьновый проект и скопировать код.(работает, но потом происходит снова)
  • Использовать другой компьютер.(работает, но в конечном итоге этот компьютер тоже сталкивается с проблемой)
  • Попытка создать временную папку и предоставить всем пользователям полный контроль над ней.
  • Попытаться изменить номер порта и заново создать виртуальный каталог
  • Попытка удаления всей папки решения и повторного клонирования репо.

Проблема не возникает на веб-серверах, только локально.

Любая идея о том, что происходитна?Я не могу найти конфигурацию, которая сообщает IIS для сжатия файлов, поэтому не уверен, почему я продолжаю видеть эту ошибку.

Редактировать

Я определил, что application_startдаже в global.asax никогда не запускается (код StreamWriter в нем для входа в файл в случае проблем с отладчиком).Поэтому я предполагаю, что 404 - это потому, что маршруты никогда не регистрируются.

Я попытался обновить Microsoft.AspNet.Mvc до последней версии 5.2.6.

Редактировать 2 Так что янашел обходной путь.Я установил IIS локально, опубликовал в папке и отладил, подключившись к процессу.Если я указываю IIS непосредственно на проект или использую IIS в VS, это не работает.

Я думаю, что проблема связана с некоторой тупостью dll, проект, кажется, работает после публикации.

enter image description here

Редактировать 3

Найден корень проблемы.Я использую Ubuntu / Bash на Windows.Клонирование git-репозитория через bash, похоже, неправильно устанавливает права доступа.Если я клонирую через командную строку, проблема не возникает.Теперь мне нужно выяснить, почему bash портит права доступа к файлу.

...