2010-11-17 16 views
9

ArkaplanÇıkış önbelleği hala Cache-Control ekleyerek:

Bir müşteri web uygulama çalıştırıyor devre dışı no-cache bile. HTTPS üzerinden ve (oldukça iyi biliyorum) IE8 içine çalışan dosya "önbelleğe yazılabilir" hata yanıtı PDF/Excel/word dosyası görüntülemeye çalıştığınızda hata çünkü HTTP Cache-Control:no-cache yönergesini içerir. Mesele şu ki, bu yönergeyi ekleyen uygulamamız (veya yapılandırması) değil.

I araştıran biraz IIS7 sayfa çıkış önbelleğe alma özelliği de tepki başlıklarına Cache-Control:no-cache, private ekleme etkisi olmayacaktır örnek

<caching enabled="false" enableKernelCache="false"> 
    <profiles> 
     <add extension=".htm" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" /> 
    </profiles> 
</caching> 

için, bu başlığı ekleyebilir keşfetti sonra.

My Soru

Ama (yani enabled="false" yukarıda benim yapılandırma snippet'te bakınız) bile sizi güya devre dışı özelliği şaşırtıcı, yanıt başlıkları hala Cache-Control:no-cache, private ile gönderiliyor (IMO) şey olduğunu .

Bu konuda şaşkınlık duyabiliyorum (muhtemelen sanırım)?

cevap

5

Yalnız değilsin: http://forums.iis.net/t/1152306.aspx

Biz de aynı problem vardı. Bu "özellik" hakkında herhangi bir belge bulamadım, bu yüzden bir hata olduğunu farz ediyorum.

Yalnızca önbelleğe alma etiketini kaldırmaya ve bunun yerine yalnızca clientCache etiketini kullanmaya karar verdik.

4

'.' Öğesini kaldırın. Uzatma özelliğinde: web.config için bu eklemek için

<profiles> 
    <add extension="htm" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" /> 
</profiles> 
+0

Bu hak burada doğru cevap olmalıdır. – Prescient

+1

Hayır, bu doğru değil. Muhtemelen çalışıyorsunuz çünkü başka bir yerde tanımlanmış olan 'bölümünüz var. Noktayı kaldırdığınızda, eklentiyi eklemek işe yaramaz hale gelir, bu da '' bölümünün etkili olmasını sağlar. – chenz

+0

** Bu doğru! ** Bu "bilme" yi denedim çünkü işe yaramazdı, çünkü IIS örneği size önbellekleme için GUI verir, '.' uzantıdan önce ... ** Ama işe yaradı! ** Sizi temin ederim, bu, IIS 8 için doğru cevaptır - buradan bakın http://i66.tinypic.com/2e249af.png – Jimbo

0

deneyin, tamamen benim için Cache-Control başlık kaldırıldı: me ekleyerek oldu etkin şekilde no-cache kurtuldum Ne

<system.Webserver> 
<staticContent> 
<clientCache cacheControlMode="NoControl" /> 
</staticContent> 
</system.Webserver> 
7

<caching enabled="false" enableKernelCache="false"> 
    <profiles> 
     <add extension=".htm" ... location="Any" /> 
    </profiles> 
</caching> 

yokluğunda: yerine Cache-Control:public yazar add elemanı için özniteliği, IIS varsayılan olarak Cache-Control:no-cache. Diğer olası değerler Client, Downstream, Server veya ServerAndClient'dur. Ayrıntılar here.

+0

Grrr, 'burada ayrıntıları' iis.net sayfası, '' hangi ** ** 'konum' içermiyor, bu sadece düzgün bir şekilde iş yapmak için web sunucumda küfür başladığı anlamına geliyordu ve burada sona erdi. – icc97

İlgili konular