gpt4 book ai didi

c# - 返回图像的 ASPX - 输出可缓存?

转载 作者:太空狗 更新时间:2023-10-29 21:07:37 28 4
gpt4 key购买 nike

您好!

我创建了一个 APSX 网络表单,它根据提供的一些参数返回远程图像。可以这样使用:

<img src="/ImageGetter.aspx?param1=abc&param2=123" />

ImageGetter.aspx 的标记和代码与此类似:

<%@ OutputCache Duration="100000" VaryByParam="*" Location="ServerAndClient" %>
<%@ Page Language="C#" AutoEventWireup="false" EnableSessionState="False" CodeBehind="ImageGetter.aspx.cs" Inherits="ACME.Helpers.ImageGetter" %>

此代码在 ImageGetter.aspx 的 Page_Load 方法中调用:

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();

根据我的测试,它似乎没有缓存。这可能与输出缓存有关,还是我应该根据查询字符串参数编写自己的缓存来存储字节数组?

最佳答案

尝试删除 Response.End(),因为这会过早终止线程并防止发生输出缓存。

参见:http://bytes.com/groups/net-asp/323363-cache-varybyparam-doesnt-work

可能希望考虑使用 ASHX 处理程序并使用您自己的缓存方法。

关于c# - 返回图像的 ASPX - 输出可缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/745500/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com