2014-02-26 3 views
0

У меня есть приложение asp.net, в котором я перенаправляюсь с одной страницы на другую. Я проверяю SessionID на второй странице, чтобы оба запроса имели один и тот же сеанс. Теперь моя проблема связана с изменениями SessionID всякий раз, когда происходит Postback.Идентификатор сеанса в каждом запросе

Теперь я добавил тег Session в мой web.config

<sessionState mode="InProc" cookieless="true"/> 

Теперь проблема с сессией была решена и новая проблема начала появляться. Всякий раз, когда я сделать вызов с Cookiless="true" в моем web.config файле, мой URL показывает старьевщика адрес с

http://localhost:10766/(S(ojbcobj0aw0wiosttgpknwby))/registration.aspx

Если удалить Cookieless тега сессия будет потеряна на следующей странице? Кто-нибудь знает, почему это происходит, и если какое-либо исправление существует для этой проблемы?

Я прошел через множество потоков, но я не смог найти правильное решение для этого.


Редакцией: Я Установить мой cookieless="false" и теперь его работает отлично.

+0

Кажется проблема с использованием куки. Какой браузер вы проверили? Что такое настройка сервера? –

+0

Я просто работаю с VS2013. IE, Chrome и Mozilla я пробовал. Повсюду я получаю то же самое. – smilu

+1

В большинстве образцов явно указано 'cookieless = 'false''. Пожалуйста, попробуйте это. – Alexander

ответ

1

.NET Framework имеет 05 режимов состояния (пять) сессии:

  • режим InProc, который хранит состояние сеанса в памяти на веб-сервере. Это значение по умолчанию.
  • StateServer mode, в котором хранится состояние сеанса в отдельном процессе, называемом государственной службой ASP.NET. Это гарантирует, что состояние сеанса сохраняется, если веб-приложение перезапускается, а также делает состояние сеанса доступным для нескольких веб-серверов в веб-ферме.
  • Режим SQLServer хранит состояние сеанса в базе данных SQL Server. Это гарантирует, что состояние сеанса сохраняется, если веб-приложение перезапускается, а также делает состояние сеанса доступным для нескольких веб-серверов в веб-ферме.
  • Пользовательский режим, который позволяет указать пользовательского поставщика хранилища.
  • Режим выключения, который отключает состояние сеанса.

Теперь мне нужно точно знать, что делает ваше приложение сделать, чтобы рекомендовать лучшее решение:

  1. ли вы хранить что-то в сессии?
  2. Вы используете многопоточность?
  3. Сколько серверов будет иметь ваша ферма (когда приложение будет в прямом эфире)
  4. Соединяет ли ваше приложение к базе данных?

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

Я жду ответов, чтобы дополнить свой пост.

Ссылка: http://msdn.microsoft.com/en-us/library/ms178586.ASPX

+2

Чтобы сделать это ясно: InProc не будет хранить все данные в куки-файлах, только SessionID. Сохраненные данные хранятся на сервере. –

Смежные вопросы