2012-05-29 9 views
5

मैं हमारी एमवीसी 3 साइटों में से एक से जेएसओएन संपीड़न को सक्षम करने पर काम कर रहा हूं। मैंने पढ़े गए विभिन्न लेखों से ऐसा लगता है कि मुझे अनुप्रयोगों में [email protected] फ़ाइल में application/json; charset=utf-8 MIME प्रकार सेट करने में सक्षम होना चाहिए। लेकिन ऐसा करने से संपीड़न सक्षम नहीं होता है। लेकिन जब applicationhost.config फ़ाइल में जोड़ा गया, यह काम करता है। क्या मुझसे कोई चूक हो रही है?आईआईएस 7.5 एप्लिकेशन में सेट होने पर JSON को संपीड़ित नहीं करता है web.config

मेरा आवेदन web.config से जोड़ रहे है निम्नलिखित है:

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

सर्वर IIS7.5 साथ Windows Server 2008 R2 चल रहा है। मैंने साइट पर साइट के लिए & सक्षम गतिशील संपीड़न भी स्थापित किया है।

किसी भी मदद की बहुत सराहना की जाएगी, क्योंकि मैं पूरे सर्वर के लिए JSON संपीड़न को सक्षम नहीं करना चाहता हूं।

+0

कृपया इस पोस्ट को देखें: stackoverflow.com/a/7634875/1131855 मैं नोटपैड ++ के माध्यम से applicationHost.config को संपादित करने में सक्षम नहीं था। इस लिंक ने एक कंसोल कमांड का सुझाव दिया जो मेरे लिए काम करता है –

उत्तर

10

HttpCompression अनुभाग AppHostOnlyApplicationHost.config में परिभाषित किया गया है जो आपको web.config में अपनी गुणों को सेट करने से रोकता है।

संपीड़न मॉड्यूल केवल 'ApplicationHost.config' से सर्वर स्तर गुणों को पढ़ता है, भले ही आप अनुभाग को अनलॉक करते हैं (appcmd या overrideModeDefault="Allow" के साथ), निचले स्तर पर सेटिंग्स को अनदेखा कर दिया जाएगा।

+0

इसके लिए धन्यवाद, यह भ्रम को मंजूरी दे दी। यह पता चला है कि यदि आप साइट स्तर पर HttpCompression को आज़माने और अनुमति देने के लिए साइटहोस्ट.कॉन्फिग में तत्व जोड़ते हैं, तो यह AppHostOnly विशेषता के कारण बंद रहता है। एप्लिकेशनहोस्ट.कॉन्फिग में "ग्लोबल" अनुभाग में एप्लिकेशन/जेसन एमआईएम प्रकार को जोड़ने का एकमात्र तरीका है और इस प्रकार सर्वर पर सभी साइटों के लिए इसे चालू करें। –

+0

@tpeczek 'संपीड़न मॉड्यूल केवल 'ApplicationHost.config' से सर्वर स्तर गुणों को पढ़ता है क्या आपके पास इसका स्रोत है? मुझे माइक्रोसॉफ्ट से कुछ भी * आधिकारिक नहीं मिल रहा है, भले ही यह बिल्कुल मामला दिखता है, खासकर आईआईएस 8 + के साथ – theyetiman

संबंधित मुद्दे