Кэширование вывода с помощью IIS7 - Как сделать динамическую страницу aspx? - PullRequest
1 голос
/ 27 марта 2010

У меня есть RetrieveBlob.aspx, который получает некоторые переменные строки запроса и возвращает актив. Каждый URL-адрес соответствует уникальному активу.

В RetrieveBlob.aspx установлен профиль кэша. В Web.Config профиль выглядит так (под тегом system.web):

<caching>
  <outputCache enableOutputCache="true" />
  <outputCacheSettings>
    <outputCacheProfiles>
      <add duration="14800" enabled="true" varyByParam="*" 
           name="AssetCacheProfile" />
    </outputCacheProfiles>
  </outputCacheSettings>
</caching>

Хорошо, это отлично работает. Когда я помещаю точку останова в код позади RetrieveBlob.aspx, она срабатывает с первого раза, а все остальные - нет.

Теперь я выбрасываю профиль кэша и вместо этого у меня это есть в моем Web.Config под System.WebServer:

<caching>
  <profiles>
    <add extension=".swf" policy="CacheForTimePeriod"
         kernelCachePolicy="CacheForTimePeriod" duration="00:08:00" />
    <add extension=".flv" policy="CacheForTimePeriod" 
         kernelCachePolicy="CacheForTimePeriod" duration="00:08:00" />
    <add extension=".gif" policy="CacheForTimePeriod" 
         kernelCachePolicy="CacheForTimePeriod" duration="00:08:00" />
    <add extension=".png" policy="CacheForTimePeriod"    
         kernelCachePolicy="CacheForTimePeriod" duration="00:08:00" />
    <add extension=".mp3" policy="CacheForTimePeriod" 
         kernelCachePolicy="CacheForTimePeriod" duration="00:08:00" />
    <add extension=".jpeg" policy="CacheForTimePeriod" 
         kernelCachePolicy="CacheForTimePeriod" duration="00:08:00" />
    <add extension=".jpg" policy="CacheForTimePeriod" 
         kernelCachePolicy="CacheForTimePeriod" duration="00:08:00" />
  </profiles>
</caching>

Теперь кеширование больше не работает. Что я делаю неправильно? Можно ли настроить под тегом кэширования System.WebServer профиль кэширования для динамической страницы aspx?

Я уже пытался добавить что-то вроде этого:

<add extension="RetrieveBlob.aspx" policy="CacheForTimePeriod" 
     kernelCachePolicy="CacheForTimePeriod" duration="00:00:30" 
     varyByQueryString="assetId, assetFileId" />

Но это не работает.

Пример URL-адреса:

http://{server}/{application}/trunk/RetrieveBlob.aspx?assetId=31809&assetFileId=11829

1 Ответ

1 голос
/ 25 марта 2011

Перейти к:

IIS7 -> Add Cache Rule -> Advanced -> Check Query String Variables 

Затем в текстовом поле "assetId,assetFileId"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...