Случайный 404 с использованием IIS

Что может заставить IIS возвращать 404, только иногда? Если я наберу 404 на странице, я могу просто нажать «Обновить», и он появится. Это воспроизводимо. Я использовал скрипач, чтобы посмотреть, что происходит, и ничего не вижу. Я установил трассировку IIS, но опять же, я не понимаю, в чем именно может быть проблема, файл существует, а ошибка 404 возникает только иногда. Иногда я имею в виду, что если бы я перешел на страницу и получил 404, я мог бы обновить, и он появится, но в других случаях я мог бы перейти на эту страницу, а это не было бы 404. Это не ограничено какой-либо одной страницей или условием.

Что еще я могу попытаться определить, в чем проблема?


person ILovePaperTowels    schedule 15.09.2011    source источник
comment
Если вы переходите на страницу (страницы), используя новое окно приватного просмотра (т. Е. Без файлов cookie и т. Д.), Всегда ли возникает ошибка 404? Кроме того, какие модули, сопоставления с подстановочными знаками и обработчики настроены в IIS?   -  person Justin M. Keyes    schedule 16.09.2011
comment
@Justin да, это не имеет значения, если это в приватном просмотре.   -  person ILovePaperTowels    schedule 16.09.2011
comment
Я не совсем понимаю твой ответ. Ошибка 404 всегда возникает при первом посещении в новом сеансе частного просмотра или все еще случайна?   -  person Justin M. Keyes    schedule 16.09.2011
comment
Неважно, приватный это просмотр или нет, он всегда случайный.   -  person ILovePaperTowels    schedule 16.09.2011
comment
Затем вам нужно посмотреть на модули, сопоставления подстановочных знаков, обработчики и фильтры, которые настроены в IIS и / или Web.config. Отключите их и используйте процесс устранения.   -  person Justin M. Keyes    schedule 16.09.2011


Ответы (4)


Если вы запустили Fiddler и видите, что запрос поступает на сервер, и вы видите ошибку 404, то это не похоже на проблему веб-фермы.

Вы можете попробовать SysInternals ProcMon, чтобы увидеть, что происходит под ним.

person jdigital    schedule 15.09.2011

Обычно причина этого в том, что у вас есть веб-ферма с несколькими машинами, на одной из которых страницы отсутствуют.

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

person Shiraz Bhaiji    schedule 15.09.2011
comment
А точнее веб-ферма в номенклатуре Microsoft. Как правило, кластер - это просто отработка отказа, говоря языком Microsoft, а не балансировка нагрузки. - person Justin M. Keyes; 16.09.2011
comment
Нет ни веб-фермы, ни кластера, ни балансировки нагрузки - person ILovePaperTowels; 16.09.2011

У меня это есть только в приложении MVC, потому что в определенных ситуациях мои маршруты были неправильными. Нажатие приведет к 404, но F5 (обновить) отобразит веб-страницу правильно. Вы не упомянули mvc, но подумали, что стоит добавить это.

person Valamas    schedule 15.09.2011

У меня была аналогичная проблема, и я проследил ее до изменения:

<modules runAllManagedModulesForAllRequests="true" />

to:

<modules runAllManagedModulesForAllRequests="false" />

Очевидно, необходимо будет провести анализ, чтобы убедиться, что это никак не повлияет на ваше приложение.

person Shawn H.    schedule 25.07.2013