asp.net - 如何在 ASP.NET 中实现读取文件缓存?

标签 asp.net caching

我有一个系统,位于 Web 服务器上,可以动态生成文件以响应 HTTP 请求。目前它是作为 HTTPHandler 实现的。

文件一旦生成,就不会经常更改,因此我想实现一个缓存。

理想情况下,我希望网络服务器查看缓存文件夹并直接从那里提供文件,而无需执行任何代码(网络服务器被设计为擅长提供服务)毕竟是文件,所以如果我能避开这些就更好了!)。

然后我想做的是 Hook 服务器的“文件未找到”事件作为创建文件的机会,在下次请求时将副本放入缓存文件夹中并将其返回给用户而不是“找不到文件”消息。

这样,对文件的重复请求将变得非常快,并且我的代码只会在“特殊”情况下被调用。

所以 - 问题是 - 如何以尽可能不显眼且轻量级的方式将我的代码连接到“文件未找到”事件?

谢谢

最佳答案

其实很简单,只需将 IIS 中的 404 错误页面指向 HTTPHandler 即可。

Request.RawUrl 看起来像:

http://yourdomain.com/yourhandler.ashx;originally/requested/url

关于asp.net - 如何在 ASP.NET 中实现读取文件缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/282575/

相关文章:

asp.net - 加速 ASP.NET 开发

caching - 为什么 mem_load_retired.l1_hit 和 mem_load_retired.l1_miss 没有添加到加载总数中?

C中使用链表的CPU缓存缺点

tomcat - Vaadin 网络应用程序停止响应,直到我清除浏览器数据或使用 Chrome 隐身模式

c# - Web配置管理器

asp.net - Azure 网站 301 重定向 - 我将其放在哪里?

javascript - 光 slider 数据拇指图像路径未使用 Eval() 从数据库绑定(bind)

asp.net - Visual Studio 2017错误: Unable to start program,操作在当前状态下不合法

ios - 下载多个图像以在 UI 上显示

php - Doctrine 使用密码连接到 redis