我有一个通过 ISAPI 扩展在 IIS 中运行的应用程序,它根据输入 URL 输出 JSON 文件(它使用 RESTful 接口 - URL 的形式http://domain/path/to/resource.json
)。
该应用程序运行良好,但我无法让 IIS 输出缓存为正在生成的文件工作。
在我的 web.config 中我有:
<system.webServer>
...
<caching>
<profiles>
<add extension=".json" policy="CacheForTimePeriod" kernelCachePolicy="DontCache" duration="00:00:30" />
</profiles>
</caching>
</system.webServer>
我也尝试过使用,*
但也没有用。
你知道为什么这行不通吗?谢谢!
答案1
默认情况下,ISAPI 筛选器上的缓存功能是禁用的,而且我认为无法通过 GUI 启用缓存功能。安装 ISAPI 筛选器并通过修改<isapiFilters>
web.config 的部分或利用 来启用缓存功能appcmd.exe
。
appcmd.exe 示例:
appcmd.exe set config -section:system.webServer/isapiFilters /+"[name='YourJsonIsapi',path='c:\yourpath\YourJsonIsapi.dll',enabled='True',enableCache='True']" /commit:apphost
web.config 示例:
<configuration>
<system.webServer>
<isapiFilters>
<filter
name="YourJsonIsapi"
enabled="true"
enableCache="true"
path="C:\yourpath\YourJsonIsapi.dll" />
</isapiFilters>
</system.webServer>
</configuration>