ASPX que retorna uma imagem - capaz de armazenar em cache de saída?
Saudações
Criei um formulário da web APSX que retorna uma imagem remota com base em alguns parâmetros fornecidos. Pode ser usado assim:
<img src="/ImageGetter.aspx?param1=abc¶m2=123" />
marcação e o código do @ ImageGetter.aspx são semelhantes a este:
<%@ OutputCache Duration="100000" VaryByParam="*" Location="ServerAndClient" %>
<%@ Page Language="C#" AutoEventWireup="false" EnableSessionState="False" CodeBehind="ImageGetter.aspx.cs" Inherits="ACME.Helpers.ImageGetter" %>
Este código é chamado no método Page_Load do ImageGetter.aspx:
byte[] data = null;
Dictionary<string, string> file_locations = GetImageLocations(param1, param2);
try
{
data = new WebClient().DownloadData(file_locations["main"]);
}
catch (WebException wex)
{
try
{
data = new WebClient().DownloadData(file_locations["backup"]);
}
catch (Exception e)
{
throw;
}
}
Response.ContentType = "image/jpeg";
Response.OutputStream.Write(data, 0, data.Length);
Response.End();
Do meu teste, ele não parece estar em cache. Isso é possível com o Cache de Saída ou devo recorrer à gravação do meu próprio cache para armazenar as matrizes de bytes, dependendo dos parâmetros da string de consulta?