2012-05-29 11 views
5

Sto lavorando per abilitare la compressione JSON da uno dei nostri siti MVC3. Da vari articoli che ho letto sembra che dovrei essere in grado di impostare il tipo MIME application/json; charset=utf-8 nel file web.config dell'applicazione. Ma così facendo non abilita la compressione. Ma quando aggiunto al file applicationhost.config, funziona. Mi sto perdendo qualcosa qui?IIS 7.5 non sta comprimendo JSON quando è impostato nell'applicazione web.config

mia applicazione web.config ha il seguente aggiunto ad esso:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> 
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" /> 
    <dynamicTypes> 
     <add mimeType="application/javascript; charset=utf-8" enabled="true" /> 
     <add mimeType="application/x-javascript" enabled="true" /> 
     <add mimeType="application/json" enabled="true" /> 
     <add mimeType="application/json; charset=utf-8" enabled="true" /> 
    </dynamicTypes> 
    <staticTypes> 
     <add mimeType="application/javascript; charset=utf-8" enabled="true" /> 
     <add mimeType="application/x-javascript" enabled="true" /> 
     <add mimeType="application/json" enabled="true" /> 
     <add mimeType="application/json; charset=utf-8" enabled="true" /> 
    </staticTypes> 
</httpCompression> 
<urlCompression doStaticCompression="true" doDynamicCompression="true" /> 

Il server esegue Windows Server 2008 R2 con IIS7.5. Ho anche installato la compressione dinamica abilitata a & per il sito in questione.

Qualsiasi aiuto sarebbe molto apprezzato, poiché non desidero abilitare la compressione JSON per l'intero server.

+0

Si prega di dare un'occhiata a questo post: stackoverflow.com/a/7634875/1131855 Non ero in grado di modificare applicationHost.config tramite Notepad ++. Questo link ha suggerito un comando della console che ha funzionato per me –

risposta

10

HttpCompression sezione è definita AppHostOnly in ApplicationHost.config che impedisce di impostare le sue proprietà in web.config.

Il modulo di compressione legge solo le proprietà livello di server da 'ApplicationHost.config' quindi, anche se si sblocca la sezione (con appcmd o overrideModeDefault="Allow"), impostazioni di livello inferiore saranno ignorati.

+0

Grazie per questo, ha chiarito la confusione. Risulta che anche se si aggiunge un elemento a ApplicationHost.config per un sito per provare e consentire HttpCompression a livello di sito, rimane bloccato a causa dell'attributo AppHostOnly. L'unico modo è di aggiungere il tipo MIME application/json alla sezione "global" in ApplicationHost.config e quindi attivarlo per tutti i siti sul server. –

+0

@tpeczek 'Il modulo di compressione legge solo le proprietà del livello server da 'ApplicationHost.config'' Hai una fonte per questo? Non riesco a trovare * qualsiasi cosa * ufficiale da Microsoft, anche se sembra assolutamente il caso, specialmente con IIS8 + – theyetiman

Problemi correlati