Назад | Перейти на главную страницу

IIS6: как устранить ошибку 404 в приложении ASP.NET?

У меня есть приложение ASP.NET на Windows Server 2003 / IIS6, которое по какой-то причине отказывается запускаться (это Xerox Center, если эта информация поможет). Раньше он работал безупречно на этом сервере.

Теперь все, что я получу, если попытаюсь открыть домашнюю страницу приложения (http://some.intranet.server/XeroxCentreWareWeb/) является ошибкой «404 - файл или каталог не найден».

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

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

Что еще я мог проверить в этом случае?

Ответ, который я нашел, столь же прост, как и неочевиден.

По-прежнему существовала «карта приложений с подстановочными знаками», определенная для несуществующего сервера приложений (в данном случае ColdFusion). Деинсталлятор ColdFusion явно «забыл» удалить эту настройку из MetaBase.

Здесь определяются карты приложений с подстановочными знаками:

  • в диспетчере IIS откройте диалоговое окно "Свойства приложения"
  • на вкладке «Виртуальные каталоги» загляните в раздел «Настройки приложения»
  • нажмите «Конфигурация…»
  • открывается диалог «Конфигурация приложения»
  • вот оно, на вкладке "Сопоставления"

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

IIS6 имеет раздел «Расширения веб-служб» в диспетчере IIS. Убедитесь, что используемая вами версия фреймворка разрешена. Если вы недавно изменили версию фреймворка на версию, которая не помечена как разрешенная, это приведет к ошибке 404.

Журналы IIS также подтвердят для вас код субстатуса и подтвердят, что подключен правильный сайт.

Спуститесь на один уровень и установите Wireshark. Понюхайте всю транзакцию на сервере.

Рискуя указать на очевидное ... Является ли default.aspx все еще в списке документов по умолчанию для этого сайта / виртуального каталога?

Проверьте журналы IIS. Я не вижу в вашем вопросе, если вы уже это сделали.

404 - страница не найдена, поэтому я бы посмотрел на проблемы с путями перед учетными данными.

Как уже говорили другие, используйте Wireshark или другую программу захвата пакетов для анализа трафика между клиентом и сервером. Это позволит вам увидеть точный запрос, который клиент отправляет на сервер, и ответ от сервера. Я обнаружил, что когда я бьюсь головой о стену из-за сетевой проблемы, запуск захвата пакетов часто высвечивает то, что я пропустил или упустил.

Проблемы с пулом asp.net / app обычно записываются в журналы событий, так что это было бы моим первым местом, которое нужно проверить, прежде чем проводить анализ трафика.

Есть пара приложений для просмотра HTTP-заголовков прямо в браузере.

ieHTTPHeaders хорошо работает с Internet Explorer. Если вы используете Firefox, вы можете выполнить поиск Live HTTP Headers. (У меня недостаточно репутации, чтобы разместить вторую ссылку).

Каков физический путь к приложению? Он настроен как виртуальный каталог или на самом деле находится в wwwroot? Можете ли вы просматривать содержимое через диспетчер IIS?

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

Вы можете попробовать установить Fiddler и запустить его с помощью инструментов разработчика IE8, чтобы узнать, не перенаправляются ли вы или что-то в этом роде.