PDA

View Full Version : session در global.asax



mzamani
دوشنبه 06 مهر 1388, 10:40 صبح
من توی روال های global.asax که از session استفاده می کنم error زیر رو می ده:

Session state is not available in this context

کد من هم اینه :






void Application_BeginRequest(object sender, EventArgs e)
{
// Session null?
if (Session.Count != 0)
{
string endsession = Session.SessionID.Substring(Session.SessionID.Leng th);
byte[] a = new byte[endsession.Length];
for (int i = 0; i < endsession.Length; i++)
a[i] = Convert.ToByte(endsession[i]);
if (t.Decryption(a) != "sometext")
Response.Redirect("HomePageF.aspx");
}
}

mzamani
دوشنبه 06 مهر 1388, 14:27 عصر
کسی جواب نمی ده؟ خواهش می کنم............:ناراحت::ناراحت::ا سرده:

nazaninam
دوشنبه 06 مهر 1388, 14:38 عصر
از روال Application_PreRequestHandlerExecute استفاده کن

mzamani
دوشنبه 06 مهر 1388, 16:02 عصر
ممنون دوست عزیز
اما باز هم همون error رو می ده، توی وب کانفیگ نباید چیزی اضافه کنم؟ چرا session رو نمی شناسه در هر روالی که استفاده کنم؟؟؟؟؟؟؟؟؟؟؟:متفکر:

Alireza Orumand
دوشنبه 06 مهر 1388, 17:17 عصر
سلام
خوب گل پسر دلیل این اتفاق خیلی معلومه
ما یه رویدادی توی برنامه داریم به نام Session_Start، حالا شما اگر به ترتیب اتفاق افتادن رویداد ها دقت کنید میبینی که Application_BeginRequest قبل از Session_Start اتفاق میوفته. یعنی اون وقتی که شما سعی میکنی از session استفاده کنی هنوز sessionشروع نشده. یا از یه شی دیگه برای نگهداری استفاده کن یا اینکه از یه روال دیگه که بعد از Session_Start اتفاق میوفته استفاده کن.
موفق باشی.

nazaninam
سه شنبه 07 مهر 1388, 09:14 صبح
دوست عزیر در Application_PreRequestHandlerExecute دیگر Session ایجاد شده و SessionState هم وجود دارد
چه خطایی دریافت می کنید ، من تست کردم مشکلی نداشت

mzamani
شنبه 18 مهر 1388, 13:50 عصر
اون مشکل حل شد فقط موضوع اینه که به انتهای session هیچی add نمی شه حتی به replace هم نمی شه!!!!!!!!!!!!