web.config에서 HttpCompression 설정을 무시하는 IIS 7.5


8

mime type에 동적 압축을 사용하려고합니다 application/json.

applicationHost.config에서 다음과 같이 변경했습니다.

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

또한 다음 명령으로 섹션 잠금을 해제했습니다.

appcmd unlock config /section:system.webserver/httpcompression

내 web.config 설정 (applicationHost.config와 동일하지만 추가 MIME 유형이 있음) :

    <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>

그러나 응답은 좁아지지 않습니다. mimetype을 applicationHost.config에 직접 추가하면 설정이 올바르게 작동한다는 것을 알고 있습니다.

실패한 요청 추적을 사용하도록 설정했으며 오류가 발생하지 않습니다.


유도에 따라 본을 추가 할 수 있습니다 system.webServer노드 :<urlCompression doStaticCompression="true" doDynamicCompression="true" />
tugberk

불행히도 이것은 아무런 차이가 없었습니다. 또한 IIS 7.5에서는 기본값이로 doDynamicCompression변경되었습니다 true.
Ben

IIS Express에서 변경 사항이 작동합니까?
tugberk

아니요, 같은 일을해야했습니다 (applicationHost.config를 직접 변경하십시오)
Ben

이 문제를 해결 한 적이 있습니까?
마리오

답변:


3

MIME 유형을 추가하십시오.

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

1

같은 문제가 발생했습니다. 즉 IIS (IIS 10)를 gzip으로 가져 오려고 application/json시도했지만 해결 방법을 발견했습니다.

운이없이 web.config뿐만 아니라 ApplicationHost.config를 편집하려고했습니다. IIS는 단순히 .json 데이터의 압축 설정을 무시합니다. 압축한다고 말한 다른 mimetype을 행복하게 압축합니다. 그래서 text/jsonweb.config 에서 mimetype을 로 변경했으며 이제 응답을 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>

물론 다른 것들을 망칠 수도 있습니다. Content-Type:text/json


0

web.config에서 HttpCompression은 IIS 10을 사용하는 경우에만 가능합니다. IIS 7.5에서는 appHost.config에서이를 사용해야합니다.

이 게시물 에서 해당 정보 찾을 때까지 나는 또한 싸우고 있었다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.