2008-10-28 5 views
12

मेरे पास आईआईएस 7 के भीतर संपीड़न सक्षम है और यह एएसपी.NET AJAX द्वारा बनाए गए सभी को छोड़कर सभी प्रतिक्रियाओं पर अपेक्षित काम करता है। मेरे पास एक वेब सेवा है जो क्लाइंट को डेटा प्रदान करती है। जब वेब सेवा को सीधे कॉल किया जाता है, तो यह ठीक से संपीड़ित होता है। हालांकि, जब इसे एएसपी.NET AJAX के माध्यम से बुलाया जाता है, तो JSON प्रतिक्रिया संपीड़ित नहीं होती है।मैं GSPip संपीड़न के साथ अपने JSON प्रतिक्रिया भेजने के लिए ASP.NET AJAX कैसे प्राप्त कर सकता हूं?

मैं एएसपी.NET AJAX को GZip संपीड़न के साथ अपने JSON प्रतिक्रिया भेजने के लिए कैसे प्राप्त कर सकता हूं?

उत्तर

1

आप किस ब्राउज़र का उपयोग कर रहे हैं? आईई 6 में एक बग है जो संपीड़न में त्रुटियों का कारण बनता है।

http://weblogs.asp.net/scottgu/archive/2005/06/28/416185.aspx

इसके अलावा, आप ASMX फ़ाइलों के लिए संपीड़न सक्षम था: तो ASP.NET AJAX 6 ब्राउज़रों आईई के लिए रवाना संपीड़न बदल जाता है?

+0

हम एएसएमएक्स फ़ाइलों के लिए संपीड़न कैसे सक्षम कर सकते हैं? कोई संदर्भ? – Lijo

0

अंतिम मैं जाँच की, gzipping कुछ है कि आईआईएस करता है (जब सही ढंग से सेटअप) था - और पाठ्यक्रम ब्राउज़र आवश्यक शीर्षकों

5

IIS7 सामग्री-एन्कोडिंग का उपयोग करता प्रतिक्रिया संपीड़ित करने के लिए तय करने के लिए भेजता है की (यह मानते हुए निश्चित रूप से ब्राउज़र gzip स्वीकार कर सकते हैं)। वे applicationHost.config में सेट कर रहे हैं, और डिफ़ॉल्ट रूप से सूची

<dynamicTypes> 
    <add mimeType="text/*" enabled="true" /> 
    <add mimeType="message/*" enabled="true" /> 
    <add mimeType="application/x-javascript" enabled="true" /> 
    <add mimeType="*/*" enabled="false" /> 
</dynamicTypes> 

है तो आप सीधे वेब सेवा को कॉल करते हैं, तो XML प्रतिक्रिया text/xml की सामग्री-प्रकार, जो संकुचित हो जाता है है। जब AJAX द्वारा कॉल किया जाता है, तो JSON प्रतिक्रिया में application/json का एक सामग्री प्रकार होता है, इसलिए यह संपीड़ित नहीं होता है। कि applicationHost.config को निम्नलिखित जोड़ना ठीक करना चाहिए ...

 <add mimeType="application/json" enabled="true" /> 
+0

हम इसे आईआईएस 6 में कैसे कर सकते हैं? – Lijo

+0

संदर्भ: http://stackoverflow.com/questions/2515421/how-to-compress-json-with- – Lijo

+0

और [फ़ाइल प्रकार IIS संपीड़न (आईआईएस 6.0) को अनुकूलित करना] (http://www.microsoft.com/ टेक्नेट/प्रोड्टेक्नोल/विंडोज सर्वर 2003/लाइब्रेरी/आईआईएस/5 बीसी 429 डी-सी 4 ए 7-4 एफ 9ई-ए 619-5972497b932a.mspx? mfr = true) – Lijo

0

सामान्य तौर पर आप नहीं यह करने के लिए जब तक आप अपने ऐप्लिकेशन पर परिमाण के आदेश सर्वर शक्ति की मात्रा फेंकने कोई फ़र्क नहीं पड़ेगा चाहते हैं .. ।

इसके अलावा न केवल सर्वर सीपीयू लेकिन यह भी ग्राहक-सीपीयू एक समस्या है जब आप ऐसा करते हैं हो जाता है ....

इस के साथ, जो आपके ऐप्लिकेशन रास्ता धीमी यदि आप अपने सभी अजाक्स प्रतिक्रियाएँ gzip हो जाता है निष्कर्ष निकाला है ... !

+0

क्लाइंट साइड जोर नोट करना बहुत महत्वपूर्ण है। इसके अलावा, जब संकुचित करें और कब नहीं करना चाहिए, तो ध्यान रखें। वास्तव में, ऐसे समय होते हैं जहां संपीड़न वास्तव में डिकंप्रेशन से पहले वस्तु को बड़ा बनाता है। एमवीसी का उपयोग करके, यह किसी भी एएसपी.NET ऐप में किया जा सकता है, मैंने एक्शनफिल्टर एट्रिब्यूट से प्राप्त कक्षा बनाने के द्वारा अपने नियंत्रक कार्यों के लिए एक नेशन बनाई है। कक्षा के भीतर मैं स्वीकृति-एन्कोडिंग हेडर खींचता हूं, filterContext.HttpContext.Request.Headers ["स्वीकृति-एन्कोडिंग"], और डिफ्लेट या gzip के लिए जांचें। यदि वे मौजूद हैं और मेरे व्यापार की विशिष्ट स्थितियों को पूरा करते हैं तो मैं डिफ्लेट या GZipStream। –

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

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