问题标签 [cache-dependency]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
593 浏览

asp.net - ASP.NET 缓存问题

我的缓存中有两个项目

  1. 钥匙:猫
  2. 键:Animal_Vacinations

现在,Animal_Vacinations对. _ Cat因此,如果缓存项发生任何更改Cat,则缓存项Animal_Vacinations将失效。完美的 :)

好的..现在解决问题。

创建第二个缓存项(即Animal_Vacinations)后,我添加了第三个缓存对象:-

  1. 钥匙:狗

问题是,第二个对象也需要依赖Dog。在创建第二个对象时,它知道它应该依赖哪些项目。所以在这个例子中 Animal_Vacination 对象知道它应该依赖于......

  1. 乔恩斯基特

问题是,如果我尝试将Animal_Vacination具有所有这 4 个依赖项的对象插入缓存,它会失败。没有错误,只是失败了。(即Cache["Animal_Vacination"] == null)。

这样做的原因是,当我插入具有这 4 个依赖项的缓存对象时……但是其中 1 个或更多的依赖项不_exist_ ……它会优雅地失败。

真可惜。

因为在我上面的示例中,缺少的三个对象之一是在添加 2 个对象之后立即添加的。

所以......无论如何都可以将对象添加到缓存中,具有基于键的缓存依赖项,其中尚未创建 1 个或多个依赖项,但稍后可能会创建?

0 投票
1 回答
300 浏览

sql - 我可以将 SQL 缓存依赖项与 SubSonic 一起使用吗?

我想将 SQL 缓存依赖项与 SubSonic 一起使用。我怎样才能做到这一点?

0 投票
1 回答
831 浏览

asp.net - ASP.NET 使用 SqlCommand 设置缓存依赖项

这是根据查询设置缓存项的有效方法吗?

command 是一个 SqlCommand,之前初始化为:

其中“ListLanguages”是一个存储过程,它只是一个选择。

我发现这是一种比聚合缓存依赖更容易且更防故障的方法(我的意思是防故障,因为我不必自己聚合表!:)。

更有经验的程序员会怎么想?

0 投票
3 回答
1938 浏览

caching - 缓存和 SqlCacheDependency (ASP.NET MVC)

我们需要返回记录的子集,为此我们使用以下命令:

我设置了一个这样声明的 SqlCacheDependency:

但是在我运行 command.ExecuteReader() 指令后,SqlCacheDependency 对象的hasChanged基属性变为 true,尽管我没有以任何方式更改查询结果!并且,正因为如此,此查询的结果不会保存在缓存中。

是因为该命令有 2 个 SELECT 语句吗?是 ROW_NUMBER() 吗?如果是,还有其他方法可以对结果进行分页吗?

请帮忙!经过太多小时,一点点将不胜感激!谢谢

0 投票
3 回答
1302 浏览

stored-procedures - 为什么存储过程会使 SQL 缓存依赖关系失效?

几个小时后,我终于意识到我可以在我的 ASP.NET 应用程序中正确使用 Cache 对象,但是我的存储过程阻止它正常工作。

此存储过程正常工作:

但是这个(我想要的)没有:

我将@TotalRecords 参数的值设为10,因此您可以确定问题不是来自我知道不支持的COUNT(*) 函数。

此外,当我从 SQL Server Management Studio 运行它时,它完全符合它应该做的事情。在 ASP.NET 应用程序中,结果被正确检索,只是缓存无法正常工作!

你能帮忙吗?

也许是一个提示

我认为依赖 HasChanged 属性的原因与从 ROW_NUMBER 生成的列 Row 只是暂时的事实有关,因此 SQL SERVER 无法说出结果是否更改。这就是 HasChanged 始终设置为 true 的原因。

有谁知道如何在不使用 COUNT 或 ROW_NUMBER 函数的情况下对 SQL SERVER 的结果进行分页?

0 投票
2 回答
2238 浏览

c# - C#缓存使用缓存依赖

我正在尝试在 Web 应用程序中实现缓存。缓存将在 BLL 中完成。

BLL 方法签名是

目前只需调用 DAL 中的相应方法。

我遇到的问题是我的缓存依赖项将是过滤器对象,只要过滤器对象不同,就应该进行新的 DAL 调用。

如何添加此依赖项,我在文档中只能找到对文件的依赖项?

0 投票
1 回答
931 浏览

iis-6 - IIS 6 上的 VirtualPathProvider 无法正确处理文件流缓存

我正在开发一个框架,其中 .aspx 和 .master 页面嵌入在程序集中,使用 VirtualPathProvider 将 url 路由到特定的嵌入资源。

示例 url:/_framework.aspx/mypage.aspx(使用 /_framework.aspx/mymaster.master)

  • _framework.aspx 将使 IIS6 通过 ASP.NET 框架路由请求
  • .aspx 之后的所有内容都被视为 .NET 框架中的 PathInfo

在 Visual Studio 2008 Web 服务器中,virtualPath 是正确的:/_framework.aspx/mypage.aspx,但在 IIS6 中,virtualPath 是:/_framework.aspx

如果我请求两个文件:/_framework.aspx/file1.css 和 /_framework.aspx/file2.css,则 file2 将具有与 file1 相同的内容。

我怀疑 IIS6 会考虑文件路径 (_framework.aspx) 并缓存从程序集返回的文件流,从而将两个 url 视为同一个文件。

临时解决方案:

我已经实现了这样的 CacheDependency 类

它现在使文件流缓存过期,但不适用于母版页,我猜是因为它是在缓存过期之前通过 NotifyDependencyChanged 请求的。

需要的解决方案

如果我在 GetCacheDependency 中返回null,则 IIS6 不会立即使文件过期。立即使文件过期或完全禁用缓存的正确方法是什么。更好的是,我想纠正 IIS6 处理 url 的方式,因为缓存实际上很好,如果它使用完整的文件 url。

0 投票
2 回答
10057 浏览

c# - System.Runtime.Caching 中是否存在某种 CacheDependency?

我听说 .NET 4 有一个新的缓存 API。

好的,所以旧System.Web.Caching.Cache的(顺便说一下,在 .NET 4 中仍然存在)能够设置所谓的CacheDependency对象来确定缓存项是否过期。

还可以通过从CacheDependency.

我很好奇,有没有办法在新的 API 中提供这样的逻辑?

0 投票
2 回答
2076 浏览

asp.net - 多个缓存项的 CacheDependancy

我想在 ASP.NET CacheObject 中有一个项目,如果它被更改,许多相关项目将被删除

所以..在一个请求中

  1. 如果提示并且它存在于缓存中删除根对象,所有依赖也将被删除
  2. 检查缓存中的根对象,如果它不存在,则添加它
  3. 将依赖于根对象的其他对象添加到缓存中

当我这样做时,我得到一个错误“ An attempt was made to reference a CacheDependency object from more than one Cache entry

我看到您可以执行 AggregateCacheDependency 将许多依赖项应用于一个缓存项,但似乎您不能以相反的方式执行此操作。

有没有人找到一种方法来做到这一点?

这是一些代码,它不是我实际存储的,但它代表相同的任务

0 投票
1 回答
2609 浏览

c# - ASP.Net CacheDependency 对象问题

我想我知道这个问题的答案,但我在文档或文章的任何地方都找不到明确的“是”或“否”。

使用 .Net 3.5 ASP.Net 缓存,如果您使 CacheDependency 传递一个 string[] 的 cacheKeys,如果它们不存在,是否将这些传递的 cacheKeys 插入到使用依赖项的 Insert 上的缓存中?

因此,当缓存项“123”被插入时,如果缓存中还没有键为“def”的项怎么办?然后它会被创建吗?

如果没有,有没有办法获取那个 CacheDependency 对象,并找出它是用什么键创建的,这样我就可以遍历它们并根据需要添加每个键?

基本上,我试图允许将 CacheDependency 对象传递到我的自定义 CacheManager 对象方法中以获取依赖关系,而不是我现在需要的 string[] 数组。感谢您的任何帮助,您可以提供。