Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. У меня аппликация следующего типа: один и тот же aspx делает сабмит на себя, а в Page_Load делается HttpContext.Current.Response.Write(некийhtml) где некийhtml вычисляется неким образом. В принципе, аппликация работает нормально. Однако иногда вдруг обнаруживается, что Session["User"]==null где Session["User"] - это переменная, которая получает значение в самом начале работы сессии и больше не используется (по крайней мере программно нигде не стирается). Я из этого делаю вывод, что все переменные на уровне сессии пропали и вообще пропал Session как объект. Вопрос 1: прав ли я? Вопрос 2: почему это бывает? Я думал было, что виноват какой-то из таймаутов (в IIS знаю два таких параметра и в machine.config как минимум один), однако сегодня это произошло в момент, когда юзер (не простой юзер, а руководитель проекта во время тестирования) сидел и непрерывно работал. Спасибо заранее! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 13:15 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
файлы к корне никак не меняются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 13:26 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
...в корне, то есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 13:27 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
какой-нибудь антивирус работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 13:44 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Возможно переменная обнуляется в момент когда у твоей "апликации" кончается оперативная память. У меня было такое. Выкрутился путём жесточайшей экономии памяти. P.S. Ну надо же - программу "апликацией" обозвать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 13:45 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
2 greenapple: Да. Это хорошо или плохо? 2 Max Pro: А как проверить, что тратится память? Как отследить, что используемая память все время увеличивается? А насчет аппликации - дык я несчастный эмигранта, я не ест хорошо говорит русским языка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 13:51 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
антивирус может лазить по папке, особенно касперский в этом деле хорош ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 13:53 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Гм. Версия красивая. И как ее проверить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 13:54 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
отключить фоновое сканирование и ждать повторения, внести каталог приложения в какой-нибудь стоп-лист, если такой есть у антивируса если монитор на антивирусе показывает текущие объекты можно поинтересоваться, чем он там занят в момент работы приложения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 14:02 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Понял, благодарю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 14:03 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Ну я не знаю как проверить как тратится память. Ежели у тебя нету объёмных массивов, объектных переменных, содержащих многомерные массивы или содержащих значения типа "рекордсет из базы данных". И ежели ты не хранишь картинки в переменных, то тогда это не в этом дело. У меня такой сбой произошёл когда в памяти скопилось слишком много объектных переменных, каждая из которых была "ого-го!". По поводу антивируса - возможно, но маловероятно. Кстати, видно, твой босс - знаток в программировании. Спроси у него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 14:16 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
У нас много знатоков и боссов, но никто эту проблему пока не решил... Да, у меня есть объектные переменные, и в большом количестве. И есть коллекции таких переменных. На "ого-го" вполне тянет. Но я надеюсь, что все эти переменные вовремя уничтожаются. Может, где-то что-то я и пропустил. Как это отловить? Неужели только поиском по тексту программы? Или есть какое-то отладочное средство? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 14:19 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Думаю, что отладочное устройство есть, но вот какое и как его использовать - хрен знает. Гораздо быстрее и практичнее самому в своей программе разобраться. Во-первых отлови моменты, когда переменная обнулится. Во-вторых с помощью смекалки попытайся понять что с этим делать. С уважением, Макс Про ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 14:39 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Мдямсь... Спасибо. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 14:44 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
2 Владимир Саныч Ты ID сессии выноси на каждой странице и посмотри - он у тебя в момент пропадания переменной стал другим или остался прежним. Потому как может не сессия пропадает, может чего другое. А так будет видно, чего делается -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 14:46 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
можно так, можно трассировку включить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 14:51 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Насчет ID сессии сразу есть ответ. Трассировка включена, пишется лог на Session_Start и при ошибке, включая тот случай, когда обнаружено Session["User"]==null. Результат следующий: те SessionId, которые я вижу в логе в строках, соответствующих ["User"]==null, больше ни в каком контексте в логе не фигурируют, у них даже Session_Start нету! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 14:59 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
А до этого все ID сессии совпадают, так? А все на одном сервере происходит - IIS на одном стоит? Может с хранением сессии проблемы - попробуйте хранить ее в сервере сессий. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 15:04 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
tygraА до этого все ID сессии совпадают, так? Это проверить невозможно, потому что лог пишется только на Session_Start, а потом только когда сессия вылетела. tygraА все на одном сервере происходит - IIS на одном стоит? Пока это замечалось только на одном. tygraМожет с хранением сессии проблемы - попробуйте хранить ее в сервере сессий. А что это??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 15:10 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
хм, так у тебя две сессии, получается? а почему? а другие переменные в коллекции тоже обнуляются или нет? или речь идет о конце одной сессии и начале новой? Владимир СанычЭто проверить невозможно в трассировке же SessionID должен быть виден ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 15:21 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Если проблемы только с этой переменной, может быть стоит попробовать передавать её значение в строке запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 15:22 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
2 hDrummer там объект ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 15:26 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
2 greenapple: Попробую ответить одной фразой на все вопросы. По логу получается, что сессия исчезла и подменилась другой. 2 hDrummer: Там есть переменные объектного типа, их через строку не очень передашь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 15:27 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
авторПо логу получается, что сессия исчезла и подменилась другой. может тут баг какой виноват? я в последнее время почитываю KB от MS - никгода б не подумал что в .Net столько багов ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 15:30 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
хм. А удалось повторить с отключенным антивирусом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 15:34 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Еще руки не дошли. :^) Я эту проблему пока только выясняю в форуме, а сам занимаюсь более срочными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 15:35 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
тогда будет логично подождать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 15:37 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Может, кто-то предложит какую-нибудь идею, которую можно проверить быстро... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 15:41 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Сессию можно хранить: 1. В самом IISе 2. В сервере сессий 3. В MS SQL сервере Кому как нравится. Мы храним 2. Сервер сессий ставится вместе с установкой .net, если поставили галочку. Сидит в сервисах, называется ASP.NET State Service Чтобы сессию хранить в нем, нужно его запустить на какой-то машине (можно на этой, моэжно на другой) и в web.config прописать Код: plaintext -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 15:43 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Нашел этот сервис. Вот что у него написано: Provides support for out-of-process session states for ASP.NET. If this service is stopped, out-of-process requests will not be processed. If this service is disabled, any services that explicitly depend on it will fail to start. У меня такое впечатление, что это немножко не для того. Или просто речь о том, что это может заодно решить и мою проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 15:50 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Дык пока ваша проблема неизвестна - толи сессия пропадает, толи переменная из сессии -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 16:23 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Сессия точно пропадает, если верить логу. В момент исчезновения переменной SessionId уже не тот, который был при Session_Start. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 16:26 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Можно ли считать, что я при помощи лога ответил сам себе на первый вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 17:06 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
сессия вот так вот просто пропадать не должна, в любом случае, поэтому имеет смысл все же разобраться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 17:21 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Естественно. Но это уже мой второй вопрос (см. исходный пост в начале топика). Меня сейчас интересует, ответил ли я сам себе на первый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 17:29 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
ВС, ты сам-то как думаешь? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 17:55 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Я думаю, что в момент написания первого поста начисто забыл про лог. Теперь понимаю, что первый вопрос был лишним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 18:03 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
ПРОШУ ПРОЩЕНИЯ ЗА ДЕЗИНФОРМАЦИЮ! Лог на Session_Start был отменен. Сейчас я поправил парметры и буду ждать, пока кто-нибудь опять получит эту ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 18:51 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Проставьте в конфигурации вместо <sessionState mode="InProc" .... <sessionState mode="StateServer" .... Но надо еще будет запустить ASPService ( служба WinNT ). Вообще-то Inproc mode даже в статьях разработчиков от Microsoft рекомендуют использовать только в Debug. Существует огромное количество причин когда в резудьтате recycle процессов сессия уничтожается. От самых простых, например, что-то записали в /Bin дирректорий вашего приложения до своеобразных настроек секции <processModel> файла Machine.config. Кстати именно в этой секции, а не в <sessionState> из Web.Config определяются различные режимы, связанные с TimeOut. Кроме того, если у Вас IIS 6 , а не IIS 5 , то секция <processModel> вообще игнорируется и настройки проводятся в IIS 6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2004, 14:43 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
PS. Забыл сделать ссылку на статью в MSDN документации " Nothin' but ASP.NET ASP.NET Session State by Rob Howard Microsoft Corporation" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2004, 14:58 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Сессия может пропадать по куче причин, если она конфигурирована с mode=InProc. Я Вам приведу простейший случай. Киньте на web - форму кнопку (submit ), и 2 элемента Label , например, с имене Label1 для отображения SessionID и Label2 для отображения какой-либо строки. В обработчике события : private void Button1_Click(object sender, System.EventArgs e) { this.Label1.Text = Session.SessionID; Session["MyStr"] = "Test Session"; } private void Button2_Click(object sender, System.EventArgs e) { this.Label1.Text = Session.SessionID; this.Label2.Text = Session["MyStr"]; } Запустите проект. Щелкните на кнопке Button1 и увидите значение SessionID. После этого, занесите что-либо в каталог /Bin где размещается сборка для проекта, ну, например, создайте там подкаталог из командной строки или через проводник или любым другим образом. После этого щелкните на кнопке Button2. Вы увидите, что SessionID сохранилась, но сохраненный с ключом "MyStr" объект пропал. Если Вы в отладчике VS .NET , то увидите: Как только создан подкаталог в /Bin сразу будет выполнен обработчик Session_End ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2004, 13:34 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Спасибо! Я попробую. Интересно, что пока больше жалоб на это явление не поступало. Не знаю почему. Но как только они начнутся - я начну именно с этого совета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2004, 00:35 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
2 Владимир Саныч так а что ты делал, расскажи, плз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2004, 14:41 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Что я делал где? По теме топика - пока ничего. Вроде я уже рассказал все, что было... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2004, 18:53 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Ну в директорию /bin вообщем-то ничего и не должно добавляться в готовом проекте. А в документации сказано что если в /bin что-то добавляется то asp.net перезагружает себя по новой чтобы отследить изменения, поэтому это не баг а просто необходимое условие для нормальной работы приложения и его обновления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2004, 00:53 |
|
||
|
Пропадает Session
|
|||
|---|---|---|---|
|
#18+
Это действительно не баг. Я просто хотел показать одну из возможных причин перезагрузки рабочего процесса. А их очень много. Почти в каждой статье или книге не рекомендуют использовать InProc моду. Лучшее решение ( если все-таки выбирается Session для хранения состояния ) - это SQL Server a, затем StateServer. Inproc - для отладки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 12:27 |
|
||
|
|

start [/forum/topic.php?all=1&fid=18&tid=1395658]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
73ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 368ms |

| 0 / 0 |
