IIS перестал обслуживать статическое содержимое определенного (небольшого) размера

#iis #iis-10 #static-content

#iis #iis-10 #статическое содержимое

Вопрос:

Я действительно надеюсь, что кто-нибудь сможет помочь применить здравый смысл к этой проблеме IIS, которая сводит меня с ума. Кажется, я сталкиваюсь с той же проблемой, что и бедная душа в этой теме: https://forums.iis.net/t/1240175.aspx .

ПРИМЕЧАНИЕ: я опубликовал это ранее сегодня на Superuser — я понял, что существует большая база вопросов, помеченных IIS, поэтому подумал, что я также опубликую здесь.

ОС: Windows 10 Pro 64-разрядная версия 2004 19041.508

Проблема: в принципе, IIS не будет обслуживать статическое содержимое определенного произвольного размера — статические файлы такого размера в конечном итоге просто отключаются. Нестатическое содержимое, например файлы asp, не имеет этого ограничения и загружается должным образом, независимо от размера. Это начало происходить, казалось бы, из ниоткуда, без каких-либо изменений, связанных с IIS / system / network / permission.

Вещи, которые я пробовал:

  • Да, статическое содержимое включено!
  • То же самое, каждый браузер
  • Полностью без вирусов и вредоносных программ
  • Отключен блокировщик рекламы / антивирус / брандмауэр / и т. Д.
  • Нет прокси (кроме случаев, когда запущен Fiddler)
  • Полностью удалены IIS (отключена функция, перемещены inetpub и windows system32 inetsrv) и повторно включена функция, которая их воссоздала)
  • Проверил журналы, включил трассировку
  • SFC scan clean
  • Проверил разрешения, переключил пользователя приложения между IUSR и пользователем домена

Подробные сведения:

Примерно 1 или 1,5 месяца назад мой локальный IIS внезапно перестал работать. Под внезапным я подразумеваю, что в предыдущий день он работал нормально, как всегда, а на следующий он остановился — без каких-либо системных изменений. Под прекращением работы я подразумеваю (в конечном итоге понял), что только статические файлы обслуживались неправильно. К сожалению / к счастью, я заметил проблему, потому что я создал обязательный персональный COVID tracker. Это был html / js, работающий на серверной части .NET API. Страницы перестали загружаться, и я потратил время на размышления о том, что я пропустил в коде (который я также не трогал). В конце концов я понял, что статический контент — изображения, css, js, html, txt и т. Д. — Не загружался должным образом. Я провел несколько тестов и обнаружил, что размер загружаемого контента ограничен, но он несколько произвольный. Например, изображение iisstart.png на веб-сайте IIS по умолчанию не загружается — оно составляет 97 КБ. Я заменил его файлом размером 8 КБ, который нормально загружается. Я мог бы получить около 1500 байт в HTML-файле — 1501 байт отправил бы его с рельсов, но 1500 сработало. То же самое было обнаружено для текстовых файлов, хотя я смог отправить более 1500 байт — не помню, сколько, но нашел точку, где разница в 1 байт вызвала проблему.

Тестовая загрузка веб-сайта IIS по умолчанию:

Журнал IIS бесполезен — он сообщает о неудачной попытке как 200, но говорит, что это заняло 19 секунд. Хотя он возвращает код состояния win32 121:

 #Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken
2020-10-23 13:36:12 127.0.0.1 GET /iisstart.png - 80 - 127.0.0.1 Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0 http://localhost/ 200 0 121 18944
  

Трассировка в основном не срабатывает, я думаю, потому что 200 в конечном итоге возвращается?

Скрипач выдает мне это для запроса изображения:

 [Fiddler] ReadResponse() failed: The server did not return a complete response for this request. Server returned 0 bytes.       
  

Для этого сайта фактический html загружается нормально — всего 696 байт — изображение, на которое он ссылается, отсутствует (97 КБ).

Если кто-нибудь может пролить некоторый свет на это или дать мне указания по устранению неполадок, я был бы очень признателен.

Спасибо

Комментарии:

1. Включено ли сжатие статического содержимого?

2. 1500 байт интересно — потому что это также MTU по умолчанию для Ethernet (хотя размер файла плюс заголовки HTTP будут превышать это …) — как ваша физическая сеть?

3. win32-status == 121 означает, что произошел тайм-аут (возможно, тайм-аут ввода-вывода с диска или тайм-аут сети или что-то еще). Интересно, есть ли у вас неисправный диск. Проверьте журнал событий вашего оборудования.

4. @Dai, я пробовал включать / выключать статическое сжатие, и в остальном моя сеть и диск в порядке. Я подумал то же самое и выполнил сканирование диска, интеллектуальную проверку и т. Д. Никаких других симптомов, кроме этого.

5. В журналах событий ничего