У меня есть веб-страница с 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();
}