.NET缓存,奇怪的行为

时间:2015-04-06 09:28:24

标签: asp.net vb.net caching

为了最大限度地减少对数据库的访问,我们使用以下语句缓存特定记录:

Cache("Article" & ArticleID) = objArticle

其中“ArticleID”是整数变量,而objArticle是“Article”类型的对象,它具有自己的属性。

有时会更新特定记录,为了使缓存无效,我们会执行以下操作:

If Not IsPostBack Then
    Dim objArticle As Framework.BusinessLogic.Article
    If Cache("Article" & ArticleID) Is Nothing OrElse InvalidateCache = True Then
        If Not Cache("Article" & ArticleID) Is Nothing Then
            Cache.Remove("Article" & ArticleID)
        End If
        objArticle = New Framework.BusinessLogic.Article(ArticleID)
        Cache("Article" & ArticleID) = objArticle
    Else
        objArticle = Cache("Article" & ArticleID)
    End If
    ....
End If

问题是,当对象更新(也无效)时,用户会报告随机查看同一对象的不同版本,并且单个用户可能会在每次刷新时看到不同的版本。

请告知。

祝你好运, McHaimech

0 个答案:

没有答案