Bazı IIS7 web.config sıkıştırma ayarlarıyla ilgili yardıma ihtiyacınız var


9

IIS7 sıkıştırma ayarlarımı web.config dosyamda yapılandırmaya çalışıyorum. HTTP 1.0 isteklerini gzip olarak etkinleştirmeye çalışıyorum.

MSDN tüm bilgi vardır burada bu konuda .

Bu yapılandırma bilgisini kendi web sitemin web.config dosyasında bulmak mümkün müdür? Yoksa bir uygulama düzeyinde mi ayarlamam gerekiyor? Şu anda, web.config içinde bu kodu var ...

<system.webServer>
    <urlCompression 
        doDynamicCompression="true" 
        dynamicCompressionBeforeCache="true" />
    <httpCompression 
        cacheControlHeader="max-age=86400" 
        noCompressionForHttp10="False" 
        noCompressionForProxies="False" 
        sendCacheHeaders="true" />

    ... other stuff snipped ...

</system.webServer>

Çalışmıyor :( HTTP 1.1 istekleri sıkıştırılıyor, 1.0 değil.

Yukarıdaki MSDN sayfasında bunun kullanılabileceği belirtiliyor: -

  • Machine.config
  • ApplicationHost.config
  • Kök uygulama Web.config
  • Uygulama Web.config
  • Dizin Web.config

Peki, bu ayarları bir web.config dosyasında programlı olarak web sitesi bazında ayarlayabilir miyiz? (bu bir Uygulama Web.config dosyasıdır.) Neyi yanlış yaptım?

alkış :)

DÜZENLEME: Nasıl HTTP1.0 sıkıştırılmış olmadığını biliyorum sordu. Geri bildirilen Başarısız İstek İzleme Kurallarını kullanıyorum: -

DYNAMIC_COMPRESSION_START
DYNAMIC_COMPRESSION_NOT_SUCESS
    Reason: 3
    Reason: NO_COMPRESSION_10
DYNAMIC_COMPRESSION_END

Yanıtlar:


3

IIS 7.x web.config ayarının

noCompressionForProxies="false"

Web.config düzeyinde onurlandırılmaz. C: \ Windows \ System32 \ inetsrv \ config \ ApplicationHost.config dosyasında şu şekilde ayarlanmalıdır:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" noCompressionForProxies="False">

Ayarı değiştirdikten sonra bir IIS sıfırlama işlemi gerçekleştirdiğinizden emin olun.

İstemcinin web isteğinde şu şekilde HTTP "Via" üstbilgisi varsa, isteğin IIS tarafından bir proxy'den olduğu belirlenir:

Via: 1.1 foo

Ayrıca appcmduygulama seviyesi ayarlarını yapmak için de kullanabilirsiniz (muhtemelen daha kolaydır).
Pure.Krome


1

HTTP1.0 isteklerinin sıkıştırılmadığını nasıl test ediyorsunuz? Kullandığınız istemci sunucuya sıkıştırılmış bir yanıtı kabul edebileceğini söylemiyor olabilir mi?

İstemci tarafından gönderilen başlıkları görebiliyorsanız (test istemcisinin kendisi tarafından sunulan, Firefox veya IEHTTPHeaders'da IE'de test ediyorsanız veya harici bir araç kullanarak trafiği koklayarak Firebug veya benzeri kullanarak), gibi bir şey görmek

Accept-Encoding: compress, gzip, deflate

orada bir yerlerde. İstemci, sunucuyu sıkıştırılmış bir yanıtı kabul edebileceği konusunda bilgilendirmezse, sunucu tarafınız ne olursa olsun sunucu bir tane göndermez.

Başka bir sorun, kendisini bu şekilde tanımlayan bir proxy sunucusu aracılığıyla test ediyorsanız olabilir. Bu durumda noCompressionForProxies ayarı öncelikli olabilir ve sıkıştırılmış yanıt olasılığını engelliyor olabilir.

Dikkat edilmesi gereken bir şey, HTTP1.0 istekleri (genellikle eski yazılım) gönderen bazı istemcilerin ve proxy'lerin, bir tane alırlarsa sıkıştırılmış bir yanıtı doğru işlemeyeceğidir, bu nedenle HTTP1.0 isteklerine yanıtlar için sıkıştırmayı etkinleştirirseniz, sitenizi / uygulamanızı ziyaretçilerin / kullanıcıların kullanmasını beklediğiniz tüm istemci / proxy yazılımlarında test edin. Hedef kitlenizin belirli bir yazılım kullanacağını garanti edebiliyorsanız (örneğin uygulama yalnızca dahili bir şirket ağı içinse) bu daha az sorun yaratır, ancak aksi takdirde çoğu sunucunun sıkıştırmayı devre dışı bırakmasının nedeni budur. Tamamen 1.0 istekleri.


HTTP1.0 isteklerinin geri bildirilen Başarısız İstek İzleme Kuralları kullanılarak sıkıştırılmadığını test ediyorum: - DYNAMIC_COMPRESSION_START DYNAMIC_COMPRESSION_NOT_SUCESS Sebep: 3 Sebep: NO_COMPRESSION_10 DYNAMIC_COMPRESSION_END
Pure.Krome
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.