我们在我们的项目中使用 Appfabric 缓存,我们遇到了两个主要问题。
首先 - 我们使用命名缓存(没有明确创建的区域)。其中之一,创建为 Expirable=false, Eviction=none, TTL=525600 用于应该始终可用的对象(在应用程序启动时通过 Put 方法填充)。但是有时(我无法确定确切的时间跨度,也无法确定与应用程序中某些操作的连接)此缓存中的所有对象突然过期-我可以从性能计数器中看到这一点-此缓存的对象计数变为 0,总过期对象计数器增加同时在此缓存中的对象数量。我是否缺少其他一些设置?我尝试通过不带时间跨度的 Put() 插入它们,并尝试通过时间跨度“一年”插入它们。几分钟后仍然过期...
第二个问题 - 当我试图解决第一个问题时,我决定使用 ETW 跟踪日志功能在日志中查看发生了什么。我通过 logman 创建了跟踪日志并启动它,等待缓存过期,停止日志,并使用 tracerpt 从 etl 创建转储文件。到目前为止一切正常。但是这个转储文件没用,因为没有可读的数据,只有 4400690073007400720....... 经过一番快速研究,我发现我需要提供一个 PDB 或 TMF 文件给 tracerpt,所以它可以“解码” binaryeventdata 到可读的事件数据。是否有可能获得其中一些用于 appfabric 缓存?或者还有其他方法可以将 ETW 与 appfabric 一起使用以获得一些有用的可读日志?