ASP.NET приложение объект теряет значения - PullRequest
0 голосов
/ 31 июля 2009

У меня есть веб-страница с 1 ярлыком и 2 кнопками. Одна кнопка выполняет обратную передачу, генерирует случайную последовательность чисел, сохраняет ее в объекте приложения и вызывает метод, который получает список из объекта приложения и записывает их в метку. Другой пользователь просто вызывает метод, который получает числа и записывает их на метку. При загрузке страницы я вызываю ту же функцию, которая получает значения и записывает их в метку.

Я запускаю сайт локально, с 3 браузерами (IE, FF, Chrome) одновременно, и он работает как положено. Каждый браузер показывает одно и то же значение, и они меняются, если один из них вызывает Randomize.

На рабочем сервере я получаю разные значения, иногда я не получаю значения в IE или FF.

У нас нет балансировщика нагрузки.

Код, это выглядит некрасиво, но я отчаянно пробовал каждую комбинацию, чтобы она заработала:

    protected void Page_Load(object sender, EventArgs e)
    {
        show();
    }
    private List<int> AllNums
    {
        get
        {
            List<int> list = new List<int>();
            try
            {
                list = (List<int>)Application["Nums"];
            }
            catch
            {
                list = new List<int>();
            }
            if (list == null)
                list = new List<int>();
            return list;

        }
    }
    protected void btnRandomize_Click(object sender, EventArgs e)
    {
        Random r = new Random();
        int i = r.Next(5, 15);
        List<int> list = new List<int>();
        for (int k = 0; k < i; k++)
            list.Add(r.Next(0, 100));
        Application.Lock();
        Application["Nums"] = list;
        Application.UnLock();
        show();
    }

    private void show()
    {
        StringBuilder sb = new StringBuilder();
        foreach (int o in AllNums)
            sb.AppendLine(o.ToString());
        lblSession.Text = sb.ToString();
    }

1 Ответ

0 голосов
/ 31 июля 2009

Может ли быть так, что machine.config установил состояние сеанса сервера в состояние Выкл, и у вас нет переопределения в вашем файле web.config?

В качестве альтернативы это может быть «зона», в которой находится URL. IE действует по-разному для интрасети, внешних сайтов. Добавьте его в список доверенных сайтов и повторите попытку.

...