Вопрос

У меня есть веб-страница, на которой пользователь выбирает компанию, и при этом я сохраняю название компании в памяти во время сеанса, но когда я перехожу на следующую страницу, сеанс длится всего около 5 минут?По любой причине и как я могу это исправить: я расширил состояние сеанса в Web.config, но это не сработало.

Пример:Session("CompanyName") = "Bytes Technology"

В моем web.config у меня есть:таймаут="40" />

Я перехожу с Default.aspx на CompanyDetail.aspx с помощью моего сеанса («CompanyName»)

Но если я оставлю программу бездействующей в CompanyDetail.aspx, я потеряю состояние сеанса.

Есть идеи?

С уважением Этьен

Это было полезно?

Решение 8

спасибо всем за всю информацию.Компания, размещающая мой сайт, только что продлила время пула приложений, и это сработало!

Спасибо Этьенhttp://www.erate.co.za

Другие советы

Из вашего комментария я вижу, что вы думаете, что ваш сайт находится в ферме серверов с балансировкой нагрузки.

в этом случае вам нужно сохранить сеанс в базе данных или избегать его использования:вы не можете быть уверены, что один и тот же сервер будет обслуживать одного и того же пользователя каждый раз, когда он выполняет обратную передачу, и если пользователь переходит с сервера «А» на сервер «Б» в двух разных сообщениях...ваши переменные сеанса потеряны.

попробуйте поискать в Google «базу данных состояния сеанса», вы найдете массу информации по этому поводу.

надеюсь это поможет

Андреа

некоторые вопросы:

  • время тайм-аута всегда одинаковое?5 минут?
  • ваш сайт работает на ферме серверов с балансировкой нагрузки?с более чем одним интерфейсным сервером?
  • что вы говорите в своем web.confing о сеансах и состоянии сеанса?

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

В ферме с балансировкой нагрузки ваш код развертывается на нескольких серверах, и если у вас отключены закрепленные сеансы, пользователь будет использовать сервер с наименьшей нагрузкой при каждом запросе.

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

Тайм-аут сеанса может быть жестко установлен в IIS хост-провайдером, и наиболее вероятной причиной является то, что он установил это значение на 5 минут.

Позвоните своему хост-провайдеру, спросите его, какие у него настройки сеанса IIS, и приступайте к делу.

В IIS зайдите в свойства вашего веб-сайта, перейдите на вкладку «Домашний каталог» и нажмите кнопку «Конфигурация».Здесь перейдите на вкладку «Параметры» и проверьте там время ожидания сеанса.Я почти уверен, что это влияет только на классический ASP, но я не уверен на 100%.

Если это происходит всегда через 5 минут, проверьте web.config на предмет настроек сеанса и проверьте IIS:веб-сайт/Свойства/ASP.NET, нажмите «Изменить конфигурацию», выберите вкладку «Управление состоянием» и проверьте настройки сеанса.

может ли на сервере быть какой-нибудь антивирус, который заставляет веб-приложение перезагружаться каждые 5 минут, при этом среда выполнения ASP.NET думает, что либо двоичные файлы, либо web.config изменились?это тоже возможно.

Другая идея — поместить имя машины в комментарий на странице и посмотреть, меняется ли оно от страницы к странице, просто чтобы подтвердить изменение сервера, обрабатывающего запрос.

Я решил отказаться от использования переменных сеанса и остановился на строках запроса!Намного лучше!!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top