#asp.net
#asp.net
Вопрос:
В моем приложении возникла очень странная ситуация, из-за которой не всегда большинство скриптов, которые я включаю в <head>
, не загружаются, но иногда они загружаются. Если я обновлю страницу (либо f5, либо кнопка обновить), иногда она загружается, иногда нет. Но если я ввожу URL-адрес непосредственно в адресную строку, страница загружается, как ожидалось. Это происходит не только на одной странице, но и на большинстве страниц, но с перерывами. Мое приложение развернуто на моем локальном IIS версии 5.1 (я использую XP SP3). В основном такая ситуация возникает, если я перестраиваю свое решение или перезапускаю свой IIS для обновления кэша IIS или перезапуска своего приложения. Я предполагаю, что моему IIS не хватает памяти для обработки всех запросов за раз, и он забыл загрузить все включенные скрипты. Кто-нибудь может пролить свет на то, где я должен искать решение такого рода проблемы? Сначала это происходит только на моей машине, но в последнее время я заметил, что это происходит и с нашим сервером разработки, я не хочу, чтобы это происходило на нашем тестовом сервере или, что еще хуже, на производственном сервере.
Редактировать:
Вот как я определяю скрипты, которые не загружены.
- У меня нет никаких изменений в каких-либо скриптах, css или чем-либо еще, что видно непосредственно на стороне клиента. Я только немного изменяю код, лежащий в основе логики, которая не повлияет на то, что пользователь клиента может видеть в пользовательском интерфейсе. Когда я собираю его и тестирую в браузере напрямую, используя локальный IIS, мой дисплей поврежден, некоторые скрипты не будут функционировать и отображаются ошибки некоторых методов страницы.
- Если я обновлю страницу один или много раз, страница переместится нормально. Как только я замечаю это, я уже знаю, что это проблема с кэшем.
- Я использовал Firefox и видел то же самое, поэтому я просмотрел исходный код. Сначала я не заметил ничего подозрительного, и все казалось нормальным, пока я не нажал на каждое включение на страницах, css и скриптах. Некоторые из них не читаются, вместо этого он вернул html, содержащий
The page cannot be displayed, There are too many people accessing the Web site at this time.
Комментарии:
1. как вы решаете, что скрипт не загружен? Возможно ли, что вы так думаете, потому что не видите свои изменения (из-за кэширования на стороне браузера)? В любом случае, лучшим способом поиска будет отслеживание запросов — используйте firebug (или fiddler или инструменты разработчика в Chrome), чтобы увидеть, какие запросы выполняются для страницы.
Ответ №1:
Как только я заметил возврат некоторых включенных скриптов и css в исходный код, который они возвращают The page cannot be displayed, There are too many people accessing the Web site at this time.
что является ошибкой 403 или доступ запрещен, я задаюсь вопросом, почему доступ запрещен, поэтому я провел собственное исследование и выяснил, что IIS 5.1 в системе XP разрешает только максимум 10 одновременных подключений с поддержкой, поэтому, если страница еще не кэширована или часть страницы, она запрашивает IIS, и бывают случаи, когда первый запрос не выполняется и выполняется другой запрос, который задерживает до 10 одновременных запросов, IIS будет возвращать ошибку 403 для этих последних запросов до тех пор, пока первый запрос не будет выполнен и не откроет другое соединение.
Для IIS5.1 в системе XP я ничего не могу сделать, кроме как принять тот факт, что он принимает только 10 одновременных запросов, но для IIS6 я нашел в этой статье, что он может легко обрабатывать до 3000 одновременных подключений и может работать без ограничений в зависимости от аппаратных ресурсов компьютера и некоторых настроек.