Sıkıştırma filtresi kullandığımda ve hatayla karşılaştığımda, hata sayfası yalnızca anlamsız karakterlerdir. Sorun, IIS hata sayfasına aktarıldığında sıkıştırma filtresinin hala geçerli olduğu, ancak başlıkların temizlendiği gibi görünüyor. "Content-encoding: gzip" başlığı olmadan, tarayıcı ham gzipli ikili verileri görüntüler. Ben IIS7.5 kullanıyorumSıkıştırma ActionFilter ile Sunucu hata iletileri, içerik kodlama üstbilgisini temizler ve anlamsızlık olarak iş görür
, ASP.NET MVC 2 önizleme 2 ve şöyle görünür bir ActionFilter: Başka
public class CompressResponseAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var request = filterContext.HttpContext.Request;
var response = filterContext.HttpContext.Response;
var acceptEncoding = request.Headers["Accept-Encoding"];
if (string.IsNullOrEmpty(acceptEncoding))
return;
acceptEncoding = acceptEncoding.ToLowerInvariant();
if (acceptEncoding.Contains("gzip"))
{
response.AppendHeader("Content-encoding", "gzip");
response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
}
else if (acceptEncoding.Contains("deflate"))
{
response.AppendHeader("Content-encoding", "deflate");
response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
}
}
}
herkes bu deneyimli?
Bunun için cevabınız olarak işaretleyiniz, çünkü işe yaradığı için ... :) –
Bu aylar boyunca beni hayal kırıklığına uğratıyordu, ama gerçek hataları yerine anlamsızca görmek için ELMAH'm vardı, sonunda onu düzeltmek için mutlu oldum:) –