gpt4 book ai didi

c# - 如何缓存 HttpResponseMessage 返回的图像

转载 作者:可可西里 更新时间:2023-11-01 17:09:26 27 4
gpt4 key购买 nike

我在缓存 HttpResponseMessage 返回的图像时遇到问题。

通过 url 访问文件:

http://localhost:[service port]/[file GUID]?Adapter=[adapter type]

例如:

http://localhost:59292/b9e7d18a-2eaf-11e4-92e3-8056f2d1ef7b?Adapter=CoolAdapter

我将 CacheControl header 添加到 HttpResponseMessage:

new CacheControlHeaderValue()
{
Public = true,
MaxAge = TimeSpan.FromSeconds(60)
};

响应的两个缓存控制 header 都在浏览器 (Chrome) 中正确显示,但该 url 的每次刷新仍然执行在服务器上检索图像的方法,而不是从缓存中提供此图片。

我是否遗漏了什么(IIS 配置、url 表单)?

最佳答案

您想将图像添加到 IIS 缓存中,并且想知道为什么它会被多次下载?如果您有多个需要相同资源的客户端,IIS 缓存就很有用。

您可以使用(命令行)检查您的当前缓存:

netsh http show cachestate

您很可能需要浏览器缓存 - 同一个客户端在短时间内一遍又一遍地请求同一个文件。以下应该会导致浏览器缓存您的图像:

<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
</staticContent>
<httpProtocol>
<customHeaders>
<add name="Cache-Control" value="public" />
</customHeaders>
</httpProtocol>

关于c# - 如何缓存 HttpResponseMessage 返回的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25549702/

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