如何在IIS中清除服务器缓存

11

我在Windows上有一个asp.net网站,采用了过度的服务器端缓存,但这些文件从未更改。可预见的是,这些文件已经被更改。我该如何重置服务器端缓存?我看到了很多如何在代码中进行操作的方法,但我不想添加一个新页面来清除缓存,除非我必须这样做。IISreset或重新启动服务器会清除缓存,但这太过于激烈了。应用程序池是否可以回收?应用程序池设置为在空闲时超时终止,这可能会在夜间发生,那么它能清除缓存吗?

代码如下:

using WebApi.OutputCache.V2;

namespace Foo.Web.API.Controllers
{
    public class BarController :  ApiController
    {
        [HttpGet]
        [CacheOutput ServerTimeSpan = 31536000)]
        public HttpResponseMessage Get(string organisationId, string file)
        {
2个回答

13

我必须删除这里的文件。这是对我有效的全部内容。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files


2
我相信只有在本地开发和调试ASP.NET应用程序时,才会将文件添加到这些文件夹中。当您仅在IIS上托管ASP.NET网站时,不会向这些文件夹中添加任何文件。 - Sagar
@Sagar,“Temporary ASP.NET Files”位置包含了编译后的中间程序集,用于处理.aspx文件等。 - user2864740

7

两者都可以清除缓存。 重启应用程序池只是一种不那么激进的方法,因为它会继续处理已经接收到的请求并在之后循环。这可以在负载情况下完成 - 我从未遇到过问题。


当然可以,但您会失去我的网站所需的会话状态,如果空闲关闭清除它,我会尝试一下。如果确实如此,这就真的引起了服务器缓存设置为一年的问题。 - dibs487
我认为,任何缓存都设置一年的超时时间是很难找到理由的。 - toornt
缓存在闲置关闭后清空得很好。谢谢。 - dibs487
3
重置应用程序池对我没有用。IIS仍然提供旧的cshtml页面。 - N73k

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接