首页 > 解决方案 > IIS 停止提供超过一定(小)大小的静态内容

问题描述

我真的希望有人可以帮助解决这个让我发疯的 IIS 问题。我似乎在这个线程中遇到了与可怜的灵魂相同的问题:https ://forums.iis.net/t/1240175.aspx 。

注意:我今天早些时候在超级用户上发布了这个 - 我意识到在 SO 上有大量带有 IIS 标记的问题,所以我想我也会在这里发布。

操作系统: Windows 10 专业版 64 位 2004 19041.508

问题: 基本上,IIS 不会提供超过某个任意大小的静态内容——超过该大小的静态文件最终会超时。非静态内容(例如 asp 文件)没有此限制,并且无论大小如何都可以按预期加载。这似乎是突然发生的,没有直接相关的 IIS/系统/网络/权限更改。

我尝试过的事情:

细节:

大约 1 或 1.5 个月前,我的本地 IIS 突然停止工作。出乎意料的是,我的意思是前一天它像往常一样工作正常,而第二天它就停止了——没有进行任何系统更改。通过停止工作,我的意思是(最终意识到)只有静态文件没有正确服务。不幸/幸运的是,我注意到了这个问题,因为我创建了强制性的个人 COVID 跟踪器。它是针对 .NET API 后端运行的 html/js。页面停止加载,我花了一些时间想知道我在代码中做了什么(我也没有接触过)。最终,我意识到没有任何静态内容——图像、css、js、html、txt 等——被正确加载。我进行了一些测试,发现要加载的内容大小有一个截止点,但这有点随意。例如,默认 IIS 网站中的 iisstart.png 图像不会加载 - 它是 97K。我将其替换为加载良好的 8k 文件。我可以在一个 html 文件中获得大约 1500 个字节 - 1501 个字节会将它发送出去,但 1500 个有效。尽管我能够发送超过 1500 字节的文本文件,但也发现了同样的情况——不记得有多少,但确实找到了一个 1 字节差异导致问题的点。

默认 IIS 网站的测试负载:

IIS 日志没有帮助 - 它将失败的尝试报告为 200,但说它花了 19 秒。它返回一个121win32 状态码

#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 给了我这个图像请求:

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

对于这个站点,实际的 html 加载得很好——它只有 696 个字节——它引用的图像却没有(97K)。

如果有人能对此有所了解或给我一个故障排除方向,我将不胜感激。

谢谢

标签: iisiis-10static-content

解决方案


推荐阅读