【发布时间】:2018-01-02 05:05:16
【问题描述】:
我似乎无法让 Windows 2012 R2 上的 IIS 缓存大型 .exe 文件。也就是说,当我不断请求文件时,我看到文件在资源监视器中不断被读取,并且正在运行
netsh http show cachestate
不显示缓存的文件。
我想我已经将系统配置为缓存内核中文件夹的 .exe 文件,并且没有最大文件大小。总缓存大小限制为 0,据我了解,这将使系统使用多达一半的内存。服务器有 6 GB 的 RAM,其中有很多是免费的。
即在Web服务器根目录的Output Cache设置中:
- 最大缓存响应大小(以字节为单位)= 0(也反映在 applicationHost.config 的 maxResponseSize 值中)
- 未检查缓存大小限制(以 MB 为单位)(也在 applicationHost.config maxCacheSize = 0 中)
- 已选中启用缓存和启用内核缓存(在 applicationHost.config 中均设置为 true
我从配置为 4.0 ASP.NET 应用程序的虚拟文件夹中提供文件。 4.6.2 已安装。虚拟文件夹指向同一系统上的 UNC 共享。 (我知道我可以指向本地文件系统;我正在模拟另一个系统上的托管文件。)
web.config 文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<clear />
<add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
</handlers>
<caching>
<profiles>
<add extension=".txt" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
<add extension=".exe" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
</profiles>
</caching>
</system.webServer>
</configuration>
它将缓存小的 .txt 和 .exe 文件(每个大约 20 字节)。
我错过了什么阻止 IIS 缓存大文件?
【问题讨论】:
-
我已经尝试指向本地文件系统而不是系统上的 UNC 共享,但这没有任何区别。
-
用不同的文件大小测试,它会缓存一个256000字节的文件而不是300000字节的文件。感觉好像还有一个我没有找到的默认为 256KB 的限制。
标签: asp.net caching iis iis-8.5