【问题标题】:Caching Problem in ASP.NETASP.NET 中的缓存问题
【发布时间】:2011-01-11 09:51:42
【问题描述】:

我在 asp.net 页面中有一个对象列表。每个对象代表一个商店的产品,由产品名称、产品id、价格、可用数量等组成。客户可以从下拉列表中选择一个产品,对应的字段,如价格、数量等自动填充适当的值。出于性能原因,当页面加载时,我从数据库中获取了整个产品列表并将其存储在“Cache['Product']”变量中,这样当下拉的值更改事件发生时,我可以得到没有任何数据库查询的对应值。

此策略在我的本地开发环境中运行良好,但是当页面上传到服务器时,相应的字段没有得到适当的值。即使从下拉列表中选择了产品,相应的字段也没有显示适当的价格、数量等。似乎我的缓存策略不起作用。

我不知道这里出了什么问题。我已将缓存变量设置如下:

if(Cache["ProductList"] == null)
            Cache.Insert("ProductList", Product, null, DateTime.Now.AddHours(1), Cache.NoSlidingExpiration);

当我需要检索缓存值时,我已经完成了如下操作:

List<Product> CachedProduct = (List<Product> )Cache["ProductList"];

我完全不知道这可能是什么问题。我需要一些帮助:(

【问题讨论】:

  • 只有一台服务器还是多台服务器?您的“ProductList”程序是否检索到正确的数据?您的数据正确吗?
  • 你能澄清一下你所说的“不工作”是什么意思吗?什么都没有出现?显示错误的项目?二级下拉菜单没有看到正确的值? 没有发生的事情很重要:)
  • “不工作”是指当用户从下拉列表中选择不同的产品时,这意味着当下拉列表的“selectedIndexChanged”事件发生时,数量字段中的值,价格字段应根据新产品而变化。现在有时它会改变,有时它不会。但是在我的本地主机上,它不会引起任何问题。
  • @Rubens:是的,我的产品列表过程正在检索正确的数据,它们都在缓存中可用。

标签: asp.net caching


【解决方案1】:

如果您在本地遇到与在服务器上不同的行为,这可能与服务器的配置有关。如果您可以访问它,请检查是否存在一些差异。否则,您可能需要发布更详细的代码示例;)

【讨论】:

    猜你喜欢
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多