program story

IIS 7.5를 사용하여 ASP.NET MVC에서 Json 결과를 압축하는 방법

inputbox 2020. 12. 30. 08:09
반응형

IIS 7.5를 사용하여 ASP.NET MVC에서 Json 결과를 압축하는 방법


IIS 7에서 ASP.NET MVC의 Json 결과를 올바르게 압축하는 데 어려움이 있습니다. IIS에서 정적 및 동적 압축을 활성화했습니다. Fiddler로 일반 텍스트 / html 및 유사한 레코드가 압축되었는지 확인할 수 있습니다. 요청을 보면 accept-encoding gzip 헤더가 있습니다. 응답에 "application / json"mimetype이 있지만 압축되지 않았습니다.

문제가 MimeType과 관련된 것으로 확인되었습니다. 를 포함 mimeType="*/*"하면 응답이 올바르게 gzip으로 압축되었음을 알 수 있습니다. 와일드 카드 mimeType을 사용하지 않고 IIS를 압축하려면 어떻게해야합니까? 이 문제는 ASP.NET MVC가 콘텐츠 형식 헤더를 생성하는 방식과 관련이 있다고 가정합니다.

CPU 사용량은 동적 제한 임계 값보다 훨씬 낮습니다. IIS의 추적 로그를 살펴보면 일치하는 MIME 유형을 찾지 못해 압축에 실패했음을 알 수 있습니다.

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" noCompressionForProxies="false">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
    <dynamicTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/x-javascript" enabled="true" />
        <add mimeType="application/json" enabled="true" />
    </dynamicTypes>
    <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="application/json" enabled="true" />
    </staticTypes>
</httpCompression>

% WinDir % \ System32 \ inetsrv \ config \ applicationHost.config 에 다음이 포함되어 있는지 확인하십시오 .

<system.webServer>
    <urlCompression doDynamicCompression="true" />
    <httpCompression>
      <dynamicTypes>
        <add mimeType="application/json" enabled="true" />
        <add mimeType="application/json; charset=utf-8" enabled="true" />       
      </dynamicTypes>
    </httpCompression>
</system.webServer>

@AtanasKorchev 링크 에서.

@simon_weaver가 의견에서 말했듯이 64 비트 Windows에서 32 비트 편집기로 잘못된 파일을 편집 할 수 있습니다. notepad.exe를 사용하여이 파일이 실제로 수정되었는지 확인하십시오.


여기에 강조 표시된 접근 방식을 성공적으로 사용했습니다 .


이 가이드 사용

이 답변 중 어느 것도 나를 위해 일하지 않았습니다. 나는 application / json을 기록했다. charset = utf-8 MIME 유형입니다.


이 접근 방식을 권장 합니다 클래스
생성 CompressAttribute및 대상 작업 설정.

참조 URL : https://stackoverflow.com/questions/2138243/how-do-i-compress-a-json-result-from-asp-net-mvc-with-iis-7-5

반응형