[WebMethod(EnableSession = true)]
public static void ProcessIT(string id)
{
string result = id;// "Welcome Mr. " + name + ". Your address is '" + address + "'.";
string[] idsplit = result.Split('_');
string Quesid = idsplit[1];
Admin_NewPractice1 a = new Admin_NewPractice1();
a.getid(Quesid);
// return result;
}
public void getid(string Quesid)
{
try
{
//ds2.Tables.Add(dt);
DataSet ds2 = new DataSet();
ds2 = (DataSet)Cache["mytable"]; // this line error comes
int m = Convert.ToInt32(Quesid);
if (m < ds2.Tables[0].Rows.Count)
fetchCommonData(ds2.Tables[0].Rows[m]);
}
catch (Exception ex)
{
throw ex;
}
}
答案 0 :(得分:2)
我认为你是以错误的方式访问缓存。
请尝试
HttpContext.Current.Cache
HttpContext.Current.Cache
将允许您访问范围为应用程序级别的缓存对象。
P.S:
很遗憾,您无法访问自定义类中的Cache
对象。
会抛出类似
的错误非静态字段,方法或属性
需要对象引用'System.Web.Caching.Cache.Get(string)'
现在,如果class
继承自System.Web.UI.Page
,它不会产生编译时错误,而是产生运行时错误。
报告类似"Cache is not available"
。
所以其中一个解决方法是使用
HttpContext.Current.Cache