7

eklendi:Vary: * yanlış http başlık tepki (asp.net MVC3) Aşağıdaki çıkış önbellek profili kullanıyorum

: dev olarak

<add name="MyFunkyProfile" duration="180" varyByParam="*" location="ServerAndClient" /> 

, bir tane giriş Vary bir yanıt başlık bilgisi ekstra Bu girişi Vary Neden

HTTP/1.1 200 OK 
Server: nginx 
... 
Vary: Accept-Encoding 
Cache-Control: private, max-age=180, s-maxage=0 
... 
Vary: * 
... 

:

Uygulamamı dağıtmak

HTTP/1.1 200 OK 
Server: Microsoft-IIS/7.5 
... 
Vary: Accept-Encoding 
Cache-Control: private, max-age=180, s-maxage=0 
... 
, ben ekstra bir tepki olarak sokulan giriş Vary var? Bu, önbelleğin düzgün çalışmasını engelliyor.

Bunu nasıl düzeltebilirim?

cevap

0

Profil/yapılandırma dosyanızda varyByParam ayarını None olarak ayarlamayı denediniz mi? Bakınız http://msdn.microsoft.com/en-us/library/hdxfb6cy.aspx.

Ayrıca, burada sadece tahmin - yapılandırma dosyası dev ve 'canlı' arasında değişir, ör. varyByParam farklı şekilde ayarlanabilir mi?

Not: Sadece yeni katıldım, bu yüzden henüz henüz yorum ekleyemiyorum (bunu bir yanıt olarak göndermek yerine ne yapardım).

+0

VariByParam değerini None olarak ayarlayamıyorum, bu yanlış sonuçlar doğuracaktır. Hayır variByParam, dev ve prod olarak aynı şekilde ayarlanır. Sunucu farklı olsa da; dev sunucusu vs IIS. – nakhli

0

Vary: Accept-Encoding başlığı, AppHarbor yönlendirme katmanı tarafından eklenir. Başlığın, içeriğinizin hem gzip'leri hem de gzip'lenmemiş sürümlerini doğru bir şekilde önbelleğe almak için aşağı akışlı proxy'ler (tipik olarak AWS CloudFront veya benzeri bir CDN) almak için gereklidir. Bu question has additional details.

Bunun uygulamanıza nasıl sorun çıkardığını anlatabilir misiniz?

+0

DeğişkenByParam = "" belirtilmezse, değişken yıldız çerçeve tarafından varsayılan olarak eklenir (changeByParam = "*" öğesinin değişkeni hala değişkendir), Atwood'un yanıtına bakın http://stackoverflow.com/a/486072/125804. Sorun etrafında çalıştım. Geçici çözümü burada yanıt olarak gönderir. – nakhli