我有一位同事在aspx页面的页面加载方法中编写了以下行:
myDataSet = (DataSet)HttpContext.Current.Cache["dataset"];
我第一次点击页面HttpContext.Current.Cache["dataset"]
读取空值。当他这样做时,值为“”(string.Empty
)并且他获得了一个强制转换异常。
我们都在我们的开发机器上运行ASP.Net 2.0,他清除了他的浏览器缓存并运行了iisreset,但是当他第一次点击页面时,它仍然显示“”。有没有人对我们可以检查解释这种差异的想法有什么想法?
答案 0 :(得分:1)
现在试试这个,你至少会避免遇到异常:
myDataSet = HttpContext.Current.Cache["dataset"] as DataSet;
答案 1 :(得分:1)
我会搜索您的代码,看看实际上将“数据集”分配到缓存中的是什么。有东西必须在那里放一个空字符串。发现这可能会导致您使用其他代码来解释不同的结果。
没有任何真实的代码示例,很难排除故障。
答案 2 :(得分:0)
也许您应该尝试使用HttpRuntime.Cache而不是HttpContext.Current.Cache。
http://theengineroom.provoke.co.nz/archive/2007/04/27/caching-using-httpruntime-cache.aspx
Difference between HttpRuntime.Cache and HttpContext.Current.Cache?