我使用.NET Memory Profiler分析了我的WCF应用程序,发现存在类型为TimeBoundedCache.ExpirableItem和Byte []的实例泄漏:
使用两个快照进行比较,间隔为1小时,不同时间的比较也显示两种类型的数量持续增加。除了这两种类型外,没有明显的泄漏。
分配堆栈如下所示:
有人认识到可能导致这种情况的原因吗?
答案 0 :(得分:0)
WCF安全堆栈中的各种安全令牌缓存实现使用它。我猜你的客户端配置了CacheIssuedTokens
功能?
此缓存将通过在后台线程上运行的清除过程进行例行清理,因此您无需担心它会永远泄漏。但是,您需要意识到,如果您的流程中有多个客户端都拥有自己的安全令牌,那么这将随着时间的推移而逐渐增加。