2009-03-16 11 views
5

में एएसपी.नेट एमवीसी संपीड़न विकल्प अब के लिए मैं एएसपी.नेट-एमवीसी के लिए आईआईएस 6 के साथ फंस गया हूं (जैसा कि मैं अभी तक सर्वर 2008 में अपग्रेड नहीं कर सकता)। ऐसा प्रतीत नहीं होता है कि मेरे रीस्टफुल यूआरएल गतिशील फाइलें हैं और उन्हें संपीड़ित नहीं कर रहा है।आईआईएस 6

मेरी सभी पुरानी .aspx फ़ाइलों को संपीड़ित किया गया है (जैसा कि फिडलर में देखा गया है), लेकिन '/products/1001' प्रकार यूआरएल नहीं है।

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

मुझे लगता है कि आईआईएस 7 यह समझने के लिए पर्याप्त चालाक है कि वे गतिशील हैं।

बोनस अंक यदि आप मुझे बता सकते हैं कि आईआईएस 6 कैसे जानता है कि कौन सी फाइलें पहले स्थान पर गतिशील हैं!

उत्तर

5

ASP.NET के लिए HTTP संपीड़न आमतौर पर 1.0 संस्करण के बाद से HttpModules का उपयोग कर लागू किया गया है के रूप में, और HttpModules अभी भी ASP.NET अनुरोध MVC ढांचे द्वारा इस्तेमाल किया पाइप लाइन के हैं, आप अभी भी एक GZIP इंजेक्षन या हवा निकालना करने के लिए एक HttpModule उपयोग कर सकते हैं प्रतिक्रिया फ़िल्टर।

यहाँ आप एक बहुत अच्छा, खुला स्रोत मिल सकते हैं, कार्यान्वयन जहाज करने के लिए तैयार: HttpCompress by Ben Lowery (Google Code पर डाउनलोड)

तुम बस DLL के लिए एक संदर्भ जोड़ने के लिए, और करने के लिए कुछ लाइनें जोड़ने के लिए अपने web.config। यह पहले से ही बहुत ही विदेशी और दुर्लभ मामलों और अपवादों को संभालता है। आप अपने वेब.कॉन्फिग में बहिष्करण जोड़ सकते हैं, फ़ाइल एक्सटेंशन (जैसे आईआईएस 6) पर आधारित नहीं, लेकिन माइम प्रकार पर, जो शायद आपको वही चाहिए जो आपको चाहिए।

मुझे यह जोड़ना चाहिए कि मैं वास्तव में इस पुस्तकालय का उपयोग करके आईआईएस 6 पर एएसपी.नेट एमवीसी वेबसाइट चला रहा हूं, इसलिए मैं पुष्टि कर सकता हूं कि यह अभ्यास में काम करता है।

+0

तो क्या मैं इस तरह कुछ उपयोग करने से बेहतर हूं और उन फ़ाइलों को छोड़कर जिन्हें मैं नहीं चाहता - जैसे जेपीईजी, एसडब्ल्यूएफ? एक अन्य विकल्प मैंने एक और सवाल में पूछा है: http: // stackoverflow।कॉम/प्रश्न/64 9 40 9/कैन-यू-लागू-ए-एक्शनफिल्टर-इन-एएसपी-नेट-एमवीसी-ऑन-एक्शन-ए-ए-एपीपी-नेट-एमवीसी-ऑन-एक्शन-एक्शन - और कंप्रेसफ़िल्टर –

+1

के लिए इसका उपयोग करें, मैं एचटीपी मॉड्यूल के साथ जाऊंगा, क्योंकि यह आपके नियंत्रकों को साफ रखता है, और यह प्रत्येक अनुरोध पर लागू होगा (आपके द्वारा उल्लिखित माइम प्रकारों को छोड़कर), ई। जी। सीएसएस फ़ाइलें, स्थैतिक एचटीएमएल इत्यादि, न केवल आपके नियंत्रक कार्यों द्वारा संचालित अनुरोध। – realMarkusSchmidt

0

एक वेब config आप StaticFileHandler और HTTP मॉड्यूल

<add verb="GET,HEAD,POST" path="*" type="[Web.Front.Modules].StaticFileHandler"/> 
<add name="HttpCompressionModule" type="[Web.Front.Modules].HttpCompressionModule"/> 

स्रोत कोड पंजीकरण करना होगा में आप here

मिलेगा लेकिन यह न भूलें आईआईएस

पर संपीड़न चालू करने के लिए
+0

स्रोत कोड लिंक मर चुका है। – Mark

0

यहाँ एक विकल्प है कि ऐसा लगता है कि एमवीसी और आईआईएस 6 के साथ वाइल्डकार्ड मैपिंग और एक्सटेंशनलेस यूआरएल का उपयोग कर काम कर रहा है:

  1. व्यवस्थापक उपकरण का उपयोग कर वैश्विक स्तर पर गतिशील और स्थैतिक संपीड़न सेट करें
  2. मेटाबेस.एक्सएमएल संपादित करें ताकि HcScriptFileExtensions संपीड़न स्कैम्स में खाली हो। यह सब कुछ संपीड़ित करने की कोशिश करेगा (jpgs और gifs सहित)।
  3. DoDynamicCompression = "false" प्रॉपर्टी का उपयोग कर फ़ोल्डर स्तर पर गतिशील संपीड़न बंद करें। यह मानता है कि आपकी सभी स्थिर सामग्री एक निर्देशिका है।
  4. एचसीफ़ाइल एक्सटेंशन गुणों में संकुचित (सीएसएस, जेएस, आदि) को स्थिर फ़ाइल एक्सटेंशन जोड़ें।

यह एक कामकाज है, लेकिन मैं इस समय के लिए सर्वर 2003 और आईआईएस 6 के साथ फंस गया हूं।

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