HttpContext.Current.Session имеет значение null

У меня есть веб-сайт с настраиваемым объектом Cache внутри библиотеки классов. Все проекты работают под управлением .NET 3.5. Session is null У меня есть веб-сайт с настраиваемым объектом Cache внутри библиотеки классов. Все проекты работают под управлением .NET 3.5. Я хотел бы преобразовать этот класс для использования состояния сеанса вместо кеша, чтобы ...

У меня есть веб-сайт с настраиваемым объектом Cache внутри библиотеки классов. Все проекты работают под управлением .NET 3.5. Session is null У меня есть веб-сайт с настраиваемым объектом Cache внутри библиотеки классов. Все проекты работают под управлением .NET 3.5. Я хотел бы преобразовать этот класс для использования состояния сеанса вместо кеша, чтобы ...

У меня есть веб-сайт с настраиваемым объектом Cache внутри библиотеки классов. Все проекты работают под управлением .NET 3.5. Я хотел бы преобразовать этот класс для использования состояния сеанса вместо кеша, чтобы сохранить состояние на сервере состояний при повторном запуске моего приложения. Однако этот код выдает исключение с «HttpContext.Current.Session is null», когда я обращаюсь к методам из моего файла Global.asax. Я вызываю класс следующим образом:

Customer customer = CustomerCache.Instance.GetCustomer(authTicket.UserData);

Почему объект всегда имеет значение 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 к классу, но это не имеет значения.

Ура. Jens

12
задан M Raymaker 3 May 2011 в 11:14
поделиться