Публикация .NET 4.5 ASP.NET веб-сайт в IIS 7.0 выдает ошибку 404, хотя файлы существуют

#c# #asp.net #.net #iis

#c# #asp.net #.net #iis

Вопрос:

Я пытаюсь развернуть свой первый ASP.NET приложение на сервере под управлением IIS 7. Но я всегда получаю ошибку 404 при попытке открыть страницу. Я подумал, что это может быть проблема с начальной страницей, поэтому я ввел прямой URL-адрес .aspx файла внутри wwwroot папки, но это дало мне еще 404. Следующим шагом было установить стартовую страницу в диспетчере IIS для определенного .aspx файла, который открыл страницу, но показанный URL-адрес не включал конкретную страницу, и я не видел свою панель навигации начальной загрузки (только ссылки, которые должны быть внутри нее), ни мои компоненты инфраструктуры. (Чтобы дать контекст, мы только что обновили сервер до .NET 4.5 этим утром, но все остальные ASP.NET веб-сайты в том же или других пулах приложений по-прежнему работают отлично!).

Затем я включил опцию просмотра содержимого папки в браузере; затем открытие веб-сайта показало мне все файлы, которые предположительно не были найдены, но нажатие на них снова дало мне 404. В целях тестирования я поместил .html в основную папку: ту, которую я мог щелкнуть и открыть, а также *.css файлы или изображения во вложенных папках. Но, как я сказал выше: ASP.NET установлен и работает для всех других веб-сайтов. Я проверил MIME-файлы, там ничего нет для файлов, связанных с ASP, но ни того, ни другого нет в рабочих проектах. Сопоставления обработчиков также кажутся правильными.

Итак, в чем может быть причина этого? Я совершенно не знаком с IIS, поэтому мне не хватает каких-либо идей, кроме простого поиска в Google: / Я предполагаю, что это что-то связанное с разрешениями (пул приложений, в котором он сейчас находится, использует режим конвейера: классический; но опять же, то же самое, что и рабочий материал) или другой вариант динамического содержимого, который я пропустил. Или — поскольку, как только я вручную определяю стартовую страницу как один из .aspx файлов, я вижу хотя бы что-то — это может быть связано с URL-адресами без расширения? Когда я вручную ввожу

myservernamemyappnameStartPage.aspx

браузер, по крайней мере, показывает

myservernamemyappnameStartPage

вместо этого. Но, похоже, я не могу найти вариант изменить это. Любая помощь очень ценится!

Ответ №1:

Я столкнулся с этой проблемой, когда впервые начал работать с ASP.NET . Я часами ломал голову, пытаясь выяснить, в чем проблема. После небольшого исследования это то, что решило мою проблему. Я добавил текущий код в файл web.config.

  <system.webServer>

<modules runAllManagedModulesForAllRequests="true"></modules> 

</system.webServer> 
  

Комментарии:

1. Куда я должен добавить это? Я попытался добавить его в веб-конфигурацию (Intellisense сказал мне, что он должен быть там), но ничего не изменилось :/

2. Вы хотите добавить его после </system.web>

3. Хм, вот куда я это поместил, но, к сожалению, это не решает проблему. Кажется, это еще одна причина для меня :/

4. Следующая ссылка — это то, что я использовал, когда у меня возникла проблема dotnetnsqlcorner.blogspot.co.uk/2014/03 /…

5. Ничего себе, хороший человек!! Исправил это для меня после добавления этого. Я бы не понял этого некоторое время… большое спасибо!