IE Edge和缓存控件

时间:2017-09-13 16:14:01

标签: asp.net-core browser-cache microsoft-edge asp.net-core-webapi

我有一个.net核心应用程序,其中我有一个带有Rest Calls的API。我尝试使用缓存配置文件缓存其中一些响应。有点像下面的代码

    [Route("RefreshToken")]
    [HttpGet]
    [ResponseCache(CacheProfileName = "token")]
    public IActionResult RefreshToken()
    {return "Blah"}

缓存配置文件令牌在我的启动时定义为

 services.AddMvc(options =>
        {
            options.CacheProfiles.Add("Default",
                new CacheProfile()
                {
                    Duration = reponseCacheDuration,
                    Location = ResponseCacheLocation.Client,
                });
            options.CacheProfiles.Add("token",
                new CacheProfile()
                {
                    Duration = (tokenExpirationMinutes - 1) * 60,
                    Location = ResponseCacheLocation.Client
                });}

我遇到的问题是当我查看IE和Chrome中的网络流量时,IE由于某种原因无法从缓存中获取值。以下是IE Edge中的网络流量(我确实将“始终从服务器刷新”设置为关闭)

Network traffic for IE Edge

以下是来自Chrome的网络流量

Network traffic for chrome

您会看到Chrome会从磁盘缓存中获取值,而IE每次都会从服务器中获取它。我使用IE Edge。

RehreshToken休息呼叫的响应标头也是

Response Header

为什么IE不能进入缓存。该应用程序在IE中非常缓慢,因为它会针对每个请求进入服务器。任何帮助在这里表示赞赏。

1 个答案:

答案 0 :(得分:0)

我一直在寻找问题的真正原因,那就是IE(和Edge)没有缓存文件,而且我发现 IE开发工具有&# 34;始终从服务器刷新"默认情况下处于启用状态的选项。您必须将其关闭以便能够在devtools中观察缓存。只需按f12,然后转到网络选项卡,找到工具栏中的第四个按钮,标题为:始终从服务器刷新。

enter image description here

我希望它有所帮助,