我有一个系统,位于 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/