IIS 7.5 mengabaikan pengaturan HttpCompression di web.config


8

Saya mencoba mengaktifkan kompresi dinamis untuk tipe mime application/json.

Di applicationHost.config, saya telah membuat perubahan berikut:

<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Allow" />

Saya juga mencoba membuka bagian dengan perintah berikut:

appcmd unlock config /section:system.webserver/httpcompression

Pengaturan web.config saya (sama dengan applicationHost.config tetapi dengan mimetype tambahan):

    <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
        <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
        <staticTypes>
            <add mimeType="text/*" enabled="true" />
            <add mimeType="message/*" enabled="true" />
            <add mimeType="application/x-javascript" enabled="true" />
            <add mimeType="application/atom+xml" enabled="true" />
            <add mimeType="application/xaml+xml" enabled="true" />
            <add mimeType="*/*" enabled="false" />
        </staticTypes>
        <dynamicTypes>
            <add mimeType="text/*" enabled="true" />
            <add mimeType="message/*" enabled="true" />
            <add mimeType="application/x-javascript" enabled="true" />
            <add mimeType="application/json" enabled="true" />
            <add mimeType="*/*" enabled="false" />
        </dynamicTypes>
    </httpCompression>

Tetapi jawabannya tidak sedang gzip. Saya tahu pengaturannya benar karena berfungsi jika saya langsung menambahkan mimetype ke applicationHost.config.

Saya telah mengaktifkan Pelacakan Permintaan Gagal dan tidak ada kesalahan yang dihasilkan.


dapatkah Anda juga mencoba menambahkan ini di bawah system.webServersimpul:<urlCompression doStaticCompression="true" doDynamicCompression="true" />
tugberk

Sayangnya ini tidak ada bedanya. Juga, dalam IIS 7.5 nilai default untuk doDynamicCompressiondiubah menjadi true.
Ben

apakah perubahan Anda berfungsi di IIS Express?
tugberk

tidak, harus melakukan hal yang sama (ubah applicationHost.config secara langsung)
Ben

Apakah Anda pernah menyelesaikan masalah ini?
Mario

Jawaban:


3

Coba juga tambahkan jenis mime:

 <add mimeType="application/json; charset=utf-8" enabled="true" />

1

Saya mengalami masalah yang sama yaitu mencoba untuk mendapatkan IIS (IIS 10 dalam kasus saya) untuk gzip application/jsontetapi telah menemukan solusi.

Saya sudah mencoba mengedit ApplicationHost.config dan juga web.config tanpa hasil. IIS mengabaikan pengaturan kompres untuk data .json. Ini dengan senang hati akan mem-gim tipe mimet lain yang Anda beri tahu kompres. Jadi saya mengubah mimetype ke text/jsondalam web.config dan sekarang saya telah melakukan respons gzipped:

<system.webServer>
  <staticContent>
    <remove fileExtension=".json" />
    <mimeMap fileExtension=".json" mimeType="text/json" />
  </staticContent>
  <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
    <dynamicTypes>
      <add mimeType="text/json" enabled="true"/>
    </dynamicTypes>
    <staticTypes>
      <add mimeType="text/json" enabled="true"/>
    </staticTypes>
  </httpCompression>
  <urlCompression doStaticCompression="true" doDynamicCompression="true"/>
</system.webServer>

Tentu saja itu dapat merusak hal-hal lain - karena sekarang respons Anda telah Content-Type:text/json


0

HttpCompression dari web.config hanya mungkin jika Anda menggunakan IIS 10. Pada IIS 7.5 Anda harus menggunakannya di appHost.config.

Saya juga berjuang sampai saya menemukan info di posting ini .

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.