Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ASP > Сбрасываются переменные static,Session,Application


Автор: YuriyRus 4.2.2013, 09:48
Здравствуйте, товарищи!

Не так давно вязлся за WEB-программирование посредством ASP.NET. И совсем недавно столкнулся с следующей проблемой. При работе со страничкой иногда сбрасываются значения глобальных переменных, пробовал разные варианты хранения:

1) static

Код

public class SessionData
{
    public ArrayList AddItemObjects; 
  
    public SessionData()
    {
        AddItemObjects = new ArrayList();
    }
}

protected static SessionData SessData;

protected void Page_Load(object sender, EventArgs e) 
        {
            if (!IsPostBack)
            {
                SessData = new SessionData();
            }
            else
            {
                if (SessData == null)
                {
                     // сброс!!!!!!!!!!!!!!!!
                }
            }
        }



2) Через Session

Код


protected static SessionData SessData;

protected void Page_Load(object sender, EventArgs e) 
        {
            if (!IsPostBack)
            {
                Session["SessionData"] = new SessionData();         // сохраняем новый объект в переменной сессии
                SessData = ((SessionData)Session["SessionData"]);   // копируем ссылку на объект
            }
            else
            {
                SessData = ((SessionData)Session["SessionData"]);
                if (SessData == null)
                {
                     // сброс!!!!!!!!!!!!!!!!
                }
            }
        }


3) То же самое, что и в предыдущем примере, только вместо Session пробовал Application, Cashe....

Сброс происходит с вероятностью примерно 70% при работе с сохраненем данных в XML-файл на серверной части (используется XmlWriter) след. образом. Отработала какая-либо запись в XML, при следующей обработке действия юзера на серверной части происходит сброс.
Запись в XML в обработчиках событий - пока единственный подозреваемый, кот. приводит к такому поведению. На стороне сервера есть немало прочих обработчиков событий без работы с ХML, и ни один из них не даёт такого эффекта.

Заранее благодарю всех, участвующих в обсуждении.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)