Приложение ASP.NET Forms время от времени отображает пустую страницу default.aspx вместо загрузки/отображения содержимого

У меня есть приложение ASP.NET Forms, Framework версии 4.5, IIS 7.5 в Windows 2008 Server R2 Standard. Время от времени я получаю пустую страницу (скриншот ниже). Когда я перезапускаю веб-сайт в IIS, проблема устраняется ... но затем повторяется снова через 2/3 дня. Файл Web.config содержит «default.aspx» вверху в качестве документа по умолчанию.

В моем приложении default.aspx — это пустой файл, который создается при запуске приложения и не содержит никакого кода/содержимого. Я предполагаю, что IIS хранит пустую страницу в кеше и иногда доставляет пустую страницу. Все остальные страницы в решении являются виртуальными страницами, не существующими физически. Однако при переходе по другим URL-адресам содержимое загружается правильно.

Я уже предпринял следующие попытки, которые не решили проблему:

  1. Кэширование вывода IIS — запретить любое кэширование как в пользовательском режиме, так и в режиме ядра.
  2. Добавлен следующий блок кода в Global.asax, чтобы решить проблему с загрузкой документа по умолчанию.

    protected void Application_BeginRequest(Object sender, EventArgs e)
    {
      var app = (HttpApplication)sender;
      if (app.Context.Request.Url.LocalPath.EndsWith("/"))
      {                   
      app.Context.RewritePath(string.Concat(app.Context.Request.Url.LocalPath, "default.aspx"));
      }
    }
    

Может кто-нибудь подскажет? Заранее спасибо :)

Скриншот пустой страницы


person shamal    schedule 08.06.2016    source источник
comment
из панели управления -> включение или отключение функции окна -> информационные службы Интернета -> общий http -> установите флажок статического содержимого и проверьте, чтобы все флажки были отмечены.   -  person Nazir Ullah    schedule 08.06.2016
comment
@Назир, спасибо за ответ. Не могу действительно следовать пути, который вы упомянули на сервере 2008 года. Однако я вижу имя обработчика StaticFile в нижней части списка сопоставления обработчиков на веб-сайте.   -  person shamal    schedule 08.06.2016
comment
в типе команды запуска (панель управления), затем нажмите «Удалить программу при открытии» с правой стороны, выберите включение или выключение функции окна, затем всплывающее диалоговое окно, откройте информационные службы Интернета —> общие функции http —> установите флажок «Статическое содержимое»   -  person Nazir Ullah    schedule 08.06.2016
comment
Спасибо, я обнаружил, что статическое содержимое установлено в разделе «Диспетчер серверов» -> «Веб-сервер (IIS)» -> «Общие функции HTTP».   -  person shamal    schedule 08.06.2016
comment
ваша проблема решена этим, пожалуйста, дайте мне знать?   -  person Nazir Ullah    schedule 09.06.2016
comment
@Nazir, это не проблема, связанная с модулем статического содержимого, поскольку он уже установлен и начинает использоваться веб-сайтом. Однако спасибо за помощь. Я сделал обходной путь (см. ответ) и наблюдаю за ним.   -  person shamal    schedule 09.06.2016


Ответы (1)


Я думаю, что проблема возникает из-за того, как приложение разработано в отношении виртуальных страниц. В приложении есть виртуальная страница default.aspx, а также статический файл (это просто пустой файл) с тем же именем в корневой папке. Я думаю, что обработчик иногда доставляет статическую страницу вместо виртуальной страницы, и поэтому отображается пустой экран.

Я развернул обходной путь, заменив статический файл default.aspx на index.html. Чтобы быть уверенным в перенаправлении на страницу по умолчанию в случае загрузки файла index.html, добавлен следующий фрагмент кода:

    <meta charset="UTF-8">
    <meta http-equiv="refresh" content="0; url=default.aspx" />

    <script>
        window.location.href = "default.aspx";
    </script>

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

person shamal    schedule 09.06.2016