У меня есть приложение, работающее в IIS через расширение ISAPI с выходными файлами JSON на основе входного URL-адреса (оно работает с интерфейсом RESTful - URL-адреса имеют форму http://domain/path/to/resource.json
).
Приложение работает хорошо, но я не могу заставить IIS Output Caching работать для файлов, которые я генерирую.
В моем web.config у меня есть:
<system.webServer>
...
<caching>
<profiles>
<add extension=".json" policy="CacheForTimePeriod" kernelCachePolicy="DontCache" duration="00:00:30" />
</profiles>
</caching>
</system.webServer>
Я также пробовал использовать *
но это тоже не работает.
Есть идеи, почему это не сработает? Спасибо!
По умолчанию кэширование отключено в фильтрах ISAPI, и я не верю, что его можно включить через графический интерфейс. Установите фильтр 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>