asp.net如何使用缓存?

标签: Vb.net Asp.net .Net
发布时间: 2017/3/26 6:10:02
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

基本上,我检索数据集和我想要在一个月内,将它缓存在服务器内存中。所以我不需要再次来电查询,在本月内运行该页时。

我做了一些研究,认为http://msdn.microsoft.com/en-us/library/system.web.caching.cacheitemremovedcallback%28v=vs.110%29.aspx是做缓存的方法,基本上我修改的子代码放入我的应用程序

Public Sub RemovedCallback(k As String, v As Object, r As CacheItemRemovedReason)
    itemRemoved = True
    reason = r
End Sub
Function AddItemToCache(cacheKey as String, ds as Dataset)
    itemRemoved = False

    onRemove = New CacheItemRemovedCallback(AddressOf Me.RemovedCallback)

    If (IsNothing(Cache(cacheKey))) Then
        Cache.Add(cacheKey, ds, Nothing, DateTime.Now.AddMonths(1), TimeSpan.Zero, CacheItemPriority.High, onRemove)
    End If
End Function

有不少在这段代码中的错误。错误之一就是为 Cache(cacheKey) 说,"高速缓存是一种类型,不能用于表达"? 在哪做错了?

解决方法 1:

听起来像你正在使用 IIS 缓存。首先,如果这是您的路线-如果您有可能会使用缓存 (可用时) 的程序集,您需要创建 Caching 大会你检查 HTTPcontext 。如果它是 null -您正在运行 IIS 之外和缓存将不可用。 一个好的替代方法是下载企业库缓存块,如果你使用 3.5 的框架。如果您使用 FW4.0 + 您使用system.runtime.caching。这种方式缓存将始终可用。还有 AppFaric 和一些第三方缓存实现,但这可能是超出你的范围。

为你的错误,它听起来像您的标识符 Cache [您的代码不显示你如何将它分配] 实际上是一种。那就是如果你做这

If Integer Is Nothing....

你的需要是使用语法

System.Web.Caching.Cache.Add...

现在,这是实例。所以,你可以做的是

Dim c as Cache = System.Web.Caching.Cache
c.Add(....
赞助商