如何在ASP.NET中实现Read-Through File Cache?

时间:2008-11-11 23:59:17

标签: asp.net caching

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

生成文件后,它们不会经常更改,因此我想实现缓存。

理想情况下,我希望Web服务器查看缓存文件夹并直接从那里提供文件,而不必执行任何我的代码(Web服务器旨在善于服务毕竟文件,所以如果我可以更好地避免那么多!)。

我当时要做的是挂钩服务器的“找不到文件”事件,作为创建文件的机会,将副本放在缓存文件夹中以供下次请求时使用,并将其返回给用户而不是“找不到文件”消息。

这样,对文件的重复请求将快速闪烁,我的代码只会在“特殊”情况下被调用。

所以 - 问题是 - 我如何以尽可能不引人注目和轻量级的方式将我的代码连接到“找不到文件”事件中?

由于

2 个答案:

答案 0 :(得分:2)

实际上非常简单,只需将IIS中的404错误页面指向HTTPHandler即可。

Request.RawUrl将如下所示:

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

答案 1 :(得分:1)

如何使用customError配置重定向到HttpHandler。

<customErrors mode="On">
   <error statusCode="404" redirect="FileGeneratorHandler.ashx" />
</customErrors>

唯一的问题是引用页面是否可供处理程序使用。