Sql SessionState: некоторые поля становятся пустыми - PullRequest
2 голосов
/ 16 марта 2012

У меня есть класс, который я хочу поставить сессии:

[Serializable]
public class Model
{
    private readonly List<Uri> uris;

    public Model()
    {
        uris = new List<Uri>();
    }


    public IEnumerable<Uri> Uris { get { return uris; } }
}

Экземпляр этого класса и некоторые строки добавляются в Session. Sql SessionState используется.

Моя проблема в том, что иногда , когда я получаю объект Model из сеанса, поле uris равно нулю. Обратите внимание, что все остальные элементы сеанса примитивного типа все еще верны. Я использую ASP.NET 4.0, кстати.

Может ли кто-нибудь объяснить мне, как это может произойти?

Заранее спасибо: -)

1 Ответ

0 голосов
/ 17 марта 2012

Я знал, что здесь произошло. Настоящая причина связана с некоторыми дополнительными условиями: 1. Код запутан. 2. Ошибка возникает при развертывании нового кода (обновления) и использовании старого сеанса.

Каждый раз, когда код запутывается, поля и свойства получают случайные нечеткие имена. Поэтому, когда состояние сеанса десериализовано, их значения равны нулю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...