带有 ISAPI 扩展的 IIS 输出缓存

带有 ISAPI 扩展的 IIS 输出缓存

我有一个通过 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>

相关内容