title: HttpContext.Current.Session is null
body: <p>I have a WebSite with a custom Cache object inside a class library. All of the projects are running .NET 3.5. 
  I would like to convert this class to use Session state instead of cache, in order to preserve state in a stateserver when my application recycles.
  However this code throws an exception with "HttpContext.Current.Session is null" when I visit the methods from my Global.asax file. I call the class like this:</p>
  
  <pre><code>Customer customer = CustomerCache.Instance.GetCustomer(authTicket.UserData);
  </code></pre>
  
  <p>Why is the object allways null?</p>
  
  <pre><code>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;
      }
  }
  </code></pre>
  
  <p>As you can see I've tried to add IRequiresSessionState to the class but that doesn't make a difference.</p>
  
  <p>Cheers
  Jens</p>