我有一个类库内的自定义Cache对象的WebSite。所有的项目都运行.NET 3.5。 我想将此类转换为使用会话状态而不是缓存,以便在应用程序回收时保持状态服务器中的状态。 但是,当我访问我的Global.asax文件中的方法时,此代码将抛出一个异常,并显示“HttpContext.Current.Session为null”。我这样称呼类:HttpContext.Current.Session为空
Customer customer = CustomerCache.Instance.GetCustomer(authTicket.UserData);
为什么对象allways null?
public class CustomerCache: System.Web.SessionState.IRequiresSessionState
{
private static CustomerCache m_instance;
private static Cache m_cache = HttpContext.Current.Cache;
private CustomerCache()
{
}
public static CustomerCache Instance
{
get
{
if (m_instance == null)
m_instance = new CustomerCache();
return m_instance;
}
}
public void AddCustomer(string key, Customer customer)
{
HttpContext.Current.Session[key] = customer;
m_cache.Insert(key, customer, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, 20, 0), CacheItemPriority.NotRemovable, null);
}
public Customer GetCustomer(string key)
{
object test = HttpContext.Current.Session[ key ];
return m_cache[ key ] as Customer;
}
}
正如你所看到的,我已经尝试将IRequiresSessionState添加到类中,但这并没有什么区别。
干杯 延
如果您尝试从Application_Start访问会话,则还没有实时会话。 – onof 2011-05-03 11:30:32