Проблема с кэшированием - файлы ASPX и ASCX не обновляются при сохранении - PullRequest
1 голос
/ 04 марта 2011

В какой-то момент в прошлом месяце два проекта веб-приложений, над которыми я работал, перестали показывать обновления файлов aspx и ascx до перезапуска IIS или сброса веб-сайта, к которому они принадлежат.

Это кажется очень случайным, и я не могу найти в разделах web.config причину, которая могла бы вызвать это изменение.

Где можно найти источник этой проблемы?

Текущие части кэширования web.config:

Удаление outputCacheProfile и перезапуск IIS не изменили.

 <caching>
    <outputCacheSettings>
        <outputCacheProfiles>
            <add name="ClientResourceCache" location="None" enabled="true" duration="3600" varyByParam="*" varyByContentEncoding="gzip;deflate"/>
        </outputCacheProfiles>
    </outputCacheSettings>
</caching>

Запуск staticConent и перезапуск также не имели значения

 <staticContent>
        <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00">
    </clientCache>
 </staticContent>
 <caching>
    <profiles>
        <add extension=".gif" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".png" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".js" policy="DontCache" kernelCachePolicy="DontCache" duration="00:01:00" location="Any" />
        <add extension=".css" policy="DontCache" kernelCachePolicy="DontCache" duration="00:01:00" location="Any" />
        <add extension=".jpg" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".jpeg" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
    </profiles>
  </caching>

Мы также попытались добавить расширения .ascx и .aspx с помощью CacheUntilChange, которые не имели значения. Другие сайты с такими же настройками не имеют проблемы.

Редактировать: Первоначально это состояние, при котором также не было обновлений при создании проекта, я лично не смог подтвердить эту проблему, но другой разработчик сообщил, что это происходило.

Ответы [ 2 ]

4 голосов
/ 04 марта 2011

При развертывании вы удаляете все данные в месте публикации, а затем развертываете новые файлы или просто копируете и перезаписываете?Я не думаю, что это проблема кода или конфигурации.

Проверьте каталог bin и найдите некоторые неуместные файлы с расширением .cache.Я сталкивался с этим в прошлом, и теперь я всегда выполняю полное удаление и развертывание всякий раз, когда делаю обновление, чтобы убедиться, что старые файлы не остались позади.

Если вы используете «Опубликовать»функциональные возможности в Visual Studio не забудьте установить параметр «Удалить все существующие файлы перед публикацией».

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

Response.Cache.SetNoStore ();

Response.Cache.SetCacheability (HttpCacheability.NoCache);

Response.Expires = -1;

добавьте это в ваше приложение событие начала запроса в файле global.asax.cs

...