2010-08-13 3 views
1

У меня есть веб-сайт, который ведет себя странно с точки зрения создания новых сеансов. Когда я запускаю веб-сайт, событие Session_Start срабатывает, как и следовало ожидать, и страница загружается нормально. Ошибка не встречается, и все работает нормально. В следующий раз, когда вы нажмете ссылку, чтобы загрузить новую страницу, Session_Start снова запускается, а новый сеанс инициализируется, теряя данные из предыдущего показа страницы. После этого вы можете перемещаться по сайту столько, сколько хотите, и сеанс остается последовательным, никогда не запуская Session_Start снова, пока вы не ожидаете (новое окно браузера и т. Д.). и посетив ту же страницу, что и сайт, без повторения этого события.Запуск Session_start на первые две страницы показов?

Я не вижу ничего очевидного в том, почему он это сделает, но мне нужно его решить, поскольку он делает неточное отслеживание сеанса, и это заставляет меня гать, поскольку я не могу объяснить, почему. Кто-нибудь видел это или кто-нибудь может предложить теорию о том, почему?

Благодаря

+0

Будет ли исходная страница и страница, на которую она перенаправляется, находится в одной папке в IIS? Любые сведения о структуре сайта? – InSane

ответ

0

Asp.net сессии обрабатываются с помощью печенья, печенья (обычно) с именем ASP.NET_SessionId. Если второй запрос, выданный перед кукией, установлен в первый раз, вы получите новый сеанс. Если это не так, выполните/проверьте значение cookie сеанса asp.net, используя средство просмотра, такое как Firebug.

+1

А, нашел проблему. Когда веб-сайт запускался, cookie ASP.NET_SessionId устанавливался с доменом «localhost», как и следовало ожидать. Затем последующие запросы страницы делались на http: // <ИМЯ МАШИНЫ> /another/page.aspx из-за записи отладки, помещенной в файл web.config, используемый для отслеживания проблем в IE6! Глядя на куки с FireCookie помогли диагностировать это - спасибо, поскольку я сомневаюсь, что я когда-либо работал, что в противном случае и нашел отличный инструмент в этом процессе! :) – LDJ