Я говорил об этом в предыдущем вопросе, но с тех пор я сузил проблему, чтобы дать возможность получить ответ. Сначала немного фона.
У меня есть веб-сайт ASP.net, который обычно работает на локальном сервере, но когда он находится на работающем сервере и доступен извне, у него возникают некоторые проблемы с данными сеанса, которые иногда приводят к ошибкам. Первая проблема оказалась проблемой с IE9. Переменная сессии просто не сохранится после того, как достигнет второй страницы и попадет в хранимую процедуру. Я исправил это, заставив страницу работать в режиме IE7 с -
Это все еще происходит в некоторых браузерах (в частности, это происходит в Firefox), но я создал цикл, который возвращает его обратно на страницу меню, когда переменная сеанса пуста, поэтому он просто появляется, когда страница не загружается и Кнопка «Открыть» может быть нажата снова.
Однако новая проблема возникает, когда я пытаюсь сохранить данные в форме. Он передает несколько переменных сеанса в интерфейс хранимой процедуры (например, идентификатор персонала и т. Д.), И происходит то, что время ожидания истекло. Однако все тайм-ауты для сеанса, заданного в webconfig и IIS, чрезвычайно велики (много часов), и рабочие процессы настроены так, чтобы никогда не истекать или не перезапускаться. Кроме того, это происходит даже через минуту или две, так что это не может быть тайм-аут. Это так же, как случайным образом теряет значения сеанса. Странная вещь в том, что если вы вернетесь и сохраните снова - выполнив те же действия с теми же данными - это будет работать. Иногда это занимает несколько итераций, но в конечном итоге это сработает.
Странно также то, что он имеет тенденцию случайным образом терять части состояния просмотра - например, значения полей - но это может быть не связано и иметь большее отношение к полям, которые автоматически заполняются при загрузке. Но я подумал, что включу это в случае, если он предложит и информацию о том, почему он может это делать.
Я обдумываю обходной путь, сбрасывая переменные сеанса в переменные состояния представления, как только страница загружается, но я действительно хотел бы обратиться к проблеме напрямую, чтобы мне не приходилось сталкиваться с ней в будущем, когда Я не могу сделать что-то подобное. Есть ли какая-то часть IIS (кстати, IIS 6), которая может быть виновником? Известно ли, что переменные сеанса часто умирают, когда их часто бросают? Не могу сказать, что много знаю о настройке сервера, но я многому научился из этой ситуации, и победа над ним станет прекрасной победой для моего морального духа. Спасибо за чтение и извините, что так долго!