2010-12-10 4 views
8

एएसपी.NET 4.0/आईआईएस 7 वेब ऐप के लिए, मैं संपीड़ित HTTP अनुरोध का समर्थन करना चाहता हूं। असल में, मैं उन ग्राहकों का समर्थन करना चाहता हूं जो अनुरोध शीर्षलेख में Content-Encoding: gzip जोड़ देंगे, और उसके अनुसार शरीर को संपीड़ित करेंगे।Asp.Net 4.0/IIS7 में संपीड़ित HTTP अनुरोधों का समर्थन कैसे करें?

किसी को भी जाना जाता है कि मैं इस तरह के एक व्यवहार कैसे प्राप्त?

पी.एस.: के विषय में, मैं कई अंतिमबिंदुओं बाकी और साबुन है, और यह HTTP स्तर पर नहीं बल्कि प्रत्येक endpoint के लिए कस्टम एनकोडर से संपीड़न का समर्थन करने के एक बेहतर समाधान लगता है।

उत्तर

5

रुचि रखने वालों के लिए, कार्यान्वयन IHttpModule के साथ अपेक्षाकृत सरल है जो आने वाले अनुरोधों को फ़िल्टर करता है।

public class GZipDecompressModule : IHttpModule 
{ 
    public void Init(HttpApplication context) 
    { 
     context.BeginRequest += BeginRequest; 
    } 

    void BeginRequest(object sender, EventArgs e) 
    { 
     var app = (HttpApplication)sender; 

     if ("gzip" == app.Request.Headers["Content-Encoding"]) 
     { 
      app.Request.Filter = new GZipStream(
       app.Request.Filter, CompressionMode.Decompress); 
     } 
    } 

    public void Dispose() 
    { 
    } 
} 

अद्यतन: ऐसा लगता है कि इस दृष्टिकोण WCF में एक समस्या को गति प्रदान, के रूप में WCF decompressing के बाद प्राप्त मूल Content-Length और नहीं मूल्य पर निर्भर करता है।

+0

मैं धारणा है कि यह नहीं बल्कि आपके होस्ट किए गए आवेदन के भीतर आईआईएस स्तर पर संपीड़न कॉन्फ़िगर करने के लिए संभव है के तहत किया गया। हालांकि मैं इसके बारे में ज्यादा पता नहीं है, केवल एक सुझाव गूगल "आईआईएस संपीड़न" – e36M3

+2

शास्त्रीय HTTP संपीड़न केवल ** प्रतिक्रियाओं पर लागू होता है **, यहाँ कि ** अनुरोध है ** मैं संपीड़ित करने के लिए कोशिश कर रहा हूँ। –

+0

यहां कुछ भी नया है? – ver

1

मेरे समान प्रश्न यहाँ करने के लिए विक्टर का जवाब का प्रयास करें:

How do I enable GZIP compression for POST (upload) requests to a SOAP WebService on IIS 7?

... लेकिन कृपया अपने कार्यान्वयन ध्यान दें पर अपने ब्लॉग कीड़े/संगतता के मुद्दों के एक जोड़े निहित है, इसलिए की मेरी समझौता संस्करण प्रयास करें HttpCompression मॉड्यूल क्लास एक ही पृष्ठ पर पोस्ट किया गया।

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