Я использую actionfilter, чтобы сжать gzip мои ответы от действий внутри контроллеров
Это мой фильтр действий:
Public Class CompressAttribute
Inherits ActionFilterAttribute
Implements IActionFilter
Public Overrides Sub OnActionExecuting(filterContext As ActionExecutingContext)
Dim request As HttpRequestBase = filterContext.HttpContext.Request
Dim acceptEncoding As String = request.Headers("Accept-Encoding")
If String.IsNullOrEmpty(acceptEncoding) Then
Return
End If
acceptEncoding = acceptEncoding.ToUpperInvariant()
Dim response As HttpResponseBase = filterContext.HttpContext.Response
If acceptEncoding.Contains("DEFLATE") Then
response.AppendHeader("Content-encoding", "deflate")
response.AppendHeader("Vary", "Accept-Encoding")
response.Filter = New WebCompressionFilter(response.Filter, CompressionMode.Compress)
ElseIf acceptEncoding.Contains("GZIP") Then
response.AppendHeader("Content-encoding", "gzip")
response.AppendHeader("Vary", "Accept-Encoding")
response.Filter = New WebCompressionFilter(response.Filter, CompressionMode.Compress)
End If
End Sub
End Class
Я применяю это к действиям внутри моих контроллеров.
Проблема в том, что он отлично работает на моем рабочем столе в среде разработки, но на моем живом сервере (на виртуальном хостинге) он не кодирует gzip.
Вместо этого он выполняет кодирование передачи по частям ....
Почему?
это мои ответы:
среда разработки:
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Sun, 25 Mar 2012 04:12:29 GMT
X-AspNet-Version: 4.0.30319
p3p: CP=\'NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM\'
X-AspNetMvc-Version: 3.0
Content-Encoding: gzip
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 13411
Connection: Close
живой сервер:
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
p3p: CP=\'NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM\'
X-AspNetMvc-Version: 3.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Sun, 25 Mar 2012 04:13:09 GMT
Transfer-Encoding: chunked
X-OSSProxy: OSSProxy 1.3.331.322 (Build 331.322 Win32 en-us)(Oct 11 2011 17:53:42)
Connection: close