sexta-feira, 19 de dezembro de 2008

Problema com ashx assíncrono gerando imagens no IE6

Bug Internet Explorer 6 visualizando imagens geradas por IHttpAsyncHandler

O IE6 precisa de que as imagens recebidas via Http venham com o cabeçalho Content-Length, em alguns casos, senão ele não termina a requisição. Como o ashx assíncrono não preenche este campo automaticamente, então devemos preenchê-lo manualmente com um código da seguinte forma:

using (Image resizedImage = resizeImage(image))

{

using (MemoryStream memoryStream = new MemoryStream())

{

resizedImage.Save(memoryStream, ImageFormat.Jpeg);

context.Response.AddHeader("Content-Length", memoryStream.Length.ToString());

memoryStream.WriteTo(context.Response.OutputStream);

}

}