Мои настройки: веб-сайт ASP.NET 4.0, работающий на IIS 6.0.
У меня есть сайт со многими целевыми страницами с виртуальными URL-адресами, и все они обслуживаются одним физическим файлом landingpage.aspx (через маршрутизацию ASP.NET 4.0), в котором я использую директиву OutputCache
, кэширующую страницу на сервер на 24 часа.
Недавно у меня возникла проблема, связанная с отсутствием блока JavaScript __doPostBack
на некоторых сгенерированных страницах . На странице есть LinkButton (внутри webusercontrol), поэтому там должен быть блок JS, но иногда его нет. Это естественным образом приводит к ошибкам JS в браузере после нажатия кнопки LinkButton .
Мое подозрение заключается в том, что, возможно, при первом посещении данного URL-адреса, обработанного вышеупомянутым физическим файлом .aspx, это могло быть посещение клиентом (браузером или поисковым ботом), которое, возможно, рассматривалось ASP.NET. как браузер нижнего уровня, и, следовательно, doPostBack не был выведен в сгенерированную кэшированную версию страницы, а затем эта неправильная кэшированная версия предоставляется всем последующим посетителям ...? С другой стороны, я бы сказал, что ASP.NET достаточно умен, чтобы генерировать разные кэшированные версии для разных уровней браузеров, не так ли?
Тем не менее мой вопрос таков: могу ли я найти кэшированные файлы, которые предоставляются посетителям где-то на сервере, и каким-то образом проверить, верны ли мои предположения? Кроме того, я хотел бы полностью отключить это распознавание браузеров ASP.NET и предоставлять одинаковый контент каждому браузеру так же, как и любому современному браузеру.
Большое спасибо за любые советы и помощь.