Могу ли я получить доступ к сеансам в фоновом потоке?

Как я могу получить доступ к сессиям моего проекта в фоновом потоке в моем приложении C#.net?

это дает мне значение сеанса = ноль.

Любая идея?

3 ответа

Решение

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

сеанс потерян при многопоточности

Вы должны быть очень осторожны при использовании фоновых потоков с ASP.NET. Ко времени выполнения потока "текущий" запрос, вероятно, будет завершен. Это означает, что вы не можете получить доступ к странице или запросу, или что-нибудь интересное.

Вы не можете получить доступ к сеансу, но вы можете поделиться своими данными таким же образом, используя: HttpRuntime.Cache

Однако следует помнить о нескольких вещах: в отличие от сеанса срок действия кэша истекает. Также кеш распределяется между всеми веб-пользователями.

Другие вопросы по тегам