Очень странная проблема. Я использую Windows Server 2003 с IIS 6.0. На одном из веб-сайтов есть три виртуальных каталога: A, B и C. По какой-то причине, и, насколько я понимаю, никто не трогал коробку, у A и C возникла серьезная проблема. Любая страница в этих виртуальных каталогах, просматриваете ли вы через IIS или внешний клиент, отображает страницу, которая не найдена. Я нашел ошибку в файле журнала. Это ошибка HTTP 404.0, ошибка состояния Windows 2. Итак, страница не найдена, и система не может найти указанный файл.
Файлы есть, все до единого.
В качестве теста я создал новый виртуальный каталог с именем «D» (без кавычек), указывающий на тот же каталог, что и виртуальный каталог «C», и, конечно же, он работал. Как это возможно, что C не работает, а D работает, но оба указывают на один и тот же физический каталог?
В качестве еще одного теста я удалил виртуальный каталог «C» и воссоздал его. И что случилось? Не удалось найти страницу ни для одного файла в этом виртуальном каталоге.
Я проверил XML-файлы IIS, и они выглядели нормально.
Должна быть какая-то запись в реестре или какая-то зависимость IIS, которая повреждена или отсутствует, что вызывает проблемы.
Буду очень признателен за совет.
Спасибо.
Ответом оказалось что-то за пределами IIS, созданное программой KnowledeBase, которая использует IIS. Кто-то или кто-то запустил свою программу администрирования или регистрации, которая изменила одну или две записи в реестре. Их записи реестра включают параметры, в которых хранится буква диска с файлами данных, и запуск этой программы удаляет или сбрасывает эти записи. Я узнал об этом только после того, как связался с поставщиком этой программы базы знаний. Более того, я не мог просматривать файлы в IIS. У поставщика есть фильтр isapi, который блокирует этот запрос и заставляет вас входить в систему с клиента для доступа к страницам. Они утверждают, что это делается из соображений безопасности, вынуждая вас использовать учетную запись для входа. Итак, чтобы проверить, работают ли их страницы, мне нужно использовать другую машину и войти в систему.
Они также заявили, что виртуальный каталог «D» работал, потому что их фильтр isapi специально ищет «A», «B» и «C». Любое другое имя и их фильтр isapi его не улавливают. Я предполагаю, что они используют «A», «B» и «C» в своем скомпилированном приложении базы знаний.
Подводя итог, оказалось, что внешнее приложение использует измененные записи реестра IIS, и я нашел ответ только после того, как кто-то из поставщика нашел ответ.
Спасибо.