How to enable gzip compression in asp.net mvc

By Junaid A   Posted on April-16-2018   539

Literature

How to enable gzip compression in asp.net mvc

 

Soluiton:

just add this function in global.asax.cs file

 

        void Application_PreRequestHandlerExecute(object sender, EventArgs e)
        {
            var app = sender as HttpApplication;
            if (app != null)
            {
                string acceptEncoding = app.Request.Headers["Accept-Encoding"];
                Stream prevUncompressedStream = app.Response.Filter;

                if (!(app.Context.CurrentHandler is Page ||
                      app.Context.CurrentHandler.GetType().Name == "SyncSessionlessHandler") ||
                    app.Request["HTTP_X_MICROSOFTAJAX"] != null)
                    return;

                if (string.IsNullOrEmpty(acceptEncoding))
                    return;

                acceptEncoding = acceptEncoding.ToLower();

                if (acceptEncoding.Contains("deflate") || acceptEncoding == "*")
                {
                    // defalte
                    app.Response.Filter = new DeflateStream(prevUncompressedStream,
                        CompressionMode.Compress);
                    app.Response.AppendHeader("Content-Encoding", "deflate");
                }
                else if (acceptEncoding.Contains("gzip"))
                {
                    // gzip
                    app.Response.Filter = new GZipStream(prevUncompressedStream,
                        CompressionMode.Compress);
                    app.Response.AppendHeader("Content-Encoding", "gzip");
                }
            }
        }

 

Quotation by Hurbert hoover
By Junaid A    16-Apr-2018 Views  539



You may also read following recent articles

How to implement kendo controls in asp.net mvc