IIS stopped serving static content over a certain (small) size

305 Views Asked by At

I'm really hoping somebody can help apply some sanity to this IIS issue that has been driving me crazy. I seem to be experiencing the same problem as the poor soul in this thread: https://forums.iis.net/t/1240175.aspx.

NOTE: I posted this earlier today on Superuser - I realized there is a large base of IIS-tagged questions on SO so thought I'd also post here.

OS: Windows 10 Pro 64-bit 2004 19041.508

Problem: Basically, IIS will not serve static content over a certain arbitrary size - static files over that size will just timeout eventually. Non-static content, for example asp files do not have this limit and load as expected regardless of size. This started happening seemingly out of nowhere with no directly related IIS/system/network/permission changes.

Things I've Tried:

  • Yes, static content is turned on!
  • Same thing, every browser
  • Completely virus/malware free
  • Disabled ad blocker/anti-virus/firewall/etc.
  • No proxies (except when Fiddler is running)
  • Completely removed IIS (disabled feature, moved \inetpub and \windows\system32\inetsrv) and re-enabled feature which recreated them)
  • Checked logs, enabled tracing
  • SFC scan clean
  • Checked permissions, toggled app user between IUSR and domain user

Details:

About a 1 or 1.5 months ago my local IIS stopped working, out of the blue. By out of the blue I mean the the previous day it was working fine as always and the next it stopped - without having done any system changes whatsoever. By stopped working I mean (eventually realized) that it was only static files that were not serving correctly. Unfortunately/fortunately, I noticed the problem because I had created the obligatory personal COVID tracker. It was html/js running against a .NET API back end. The pages stopped loading and I spent time wondering what I had borked in the code (which I also hadn't touched). Eventually I realized no static content - images, css, js, html, txt etc. - was loading properly. I ran some tests and I found that there was a cutoff point in size of content that would load, but it is somewhat arbitrary. For example, the iisstart.png image in the default IIS website does not load - it's 97K. I replaced it with an 8k file that loads fine. I could get about 1500 bytes served in an html file - 1501 bytes would send it off the rails but 1500 worked. Same sort of thing was found for text files although I was able to send more than 1500 bytes - don't remember how much but did find a point where a 1 byte difference caused a problem.

Test Load of Default IIS Website:

IIS log is not helpful - it reports the failed attempt as a 200 but says it took 19 seconds. It is returning a win32 status code of 121 though:

#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

The tracing mostly doesn't fire I guess because the 200 is eventually returned?

Fiddler gives me this for the image request:

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

For this site the actual html loads fine - it's only 696 bytes - the image it references does not though (97K).

If anybody can shed some light on this or give me a direction in troubleshooting I would greatly appreciate it.

Thanks

0

There are 0 best solutions below