PDA

View Full Version : خطای Session state is not available in this context



MehranZand
جمعه 17 فروردین 1386, 19:11 عصر
من از ریسورس ها برای تغییر زبان استفاده کردم و از روال
PreRequestHandlerExecute فایل global.asax برای تغییر زبان استفاده میکنم.
به این صورت:


Dim lang As String
If Session("lang") = "" Or Session("lang") Is Nothing Then
lang = "en"
Else
lang = Session("lang")
End If
Thread.CurrentThread.CurrentUICulture = New CultureInfo(lang)
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang)


و جایی در صفحه مستر پیج هم مقدار سشن را برای تغییر زبان عوض میکنم.
فضا نام های مربوطه هم اضافه کرده ام . اما نمی دونم در هنگام باز کردن صفحه مربوط
با خطای زیر مواجه میشم:
Session state is not available in this context.

جستجو هم کردم به نتیجه ای نرسیدم

hamed_bostan
جمعه 17 فروردین 1386, 21:10 عصر
منم دقیقا به همین مشکل بر خورده بودم . فکر کنم مشکل از طرف تنظیمات هاست بود چون بعد از مدتی خودش حل شد . منم نفهمیدم مشکل از کجا بود . اگر کسی میدونه منم ممنون می شم دلیلش رو بدونم

MehranZand
شنبه 18 فروردین 1386, 00:19 صبح
کسی اگه اطلاعی داره درباره این حل این مشکل محبت کنه ممنون میشم

iman_22a
شنبه 18 فروردین 1386, 02:38 صبح
یک جایی توی همین سایت گفته شده بود که مبحث Session کلا در فایل Global.asax منتفیه و اصلا نمیشه از Session در توابع Global .asax استفاده کرد . فکر کنم به این حاطر باشه که سشن مال حالت Local هست و توابع درون Global.asax همه سمت سرور اجرا می شوند و...

__H2__
شنبه 18 فروردین 1386, 11:24 صبح
سلام
کابر iman_22a درست گفتند، ولی بدون شک راه حلی دارد و آن مسیر مستقیم Session جاری است.
System.Web.HttpContext.Current.Session

موفق باشید.

nazaninam
شنبه 18 فروردین 1386, 15:48 عصر
بجای سشن از کوکی استفاده کنید

MehranZand
شنبه 18 فروردین 1386, 15:51 عصر
بله مرسی با کوکی تست کردم حل شد البته در روال BeginRequest قرار دادم
اما این راهی که دوستمون گفتن System.Web.HttpContext.Current.Session
اگه بیشتر توضیح بدن ممنون میشم

nazaninam
شنبه 18 فروردین 1386, 16:17 عصر
در ضمن دوست عزیز من کاری که شما گفتید (سوال اولتون) رو تست کردم! با سشن کامل داره توی مسترپیج جواب میده و مشکلی هم نداره !
فایل پروژه رو ضمیمه کردم

__H2__
شنبه 18 فروردین 1386, 16:43 عصر
بله مرسی با کوکی تست کردم حل شد البته در روال BeginRequest قرار دادم
اما این راهی که دوستمون گفتن System.Web.HttpContext.Current.Session
اگه بیشتر توضیح بدن ممنون میشم

سلام
خیلی راحت به جای تایپ Session کافیست System.Web.HttpContext.Current.Session را تایپ کنید و کار را به همان روش ادامه دهید.

MehranZand
شنبه 18 فروردین 1386, 17:19 عصر
سلام
خیلی راحت به جای تایپ Session کافیست System.Web.HttpContext.Current.Session را تایپ کنید و کار را به همان روش ادامه دهید.

امتحان کردم خطای null refrence می دهد

__H2__
شنبه 18 فروردین 1386, 18:43 عصر
امتحان کردم خطای null refrence می دهد

سلام
دوست عزیز این امتحان را در کدام یک از رویدادهای global.asax انجام دادید؟
با این دستور هم واضح است که در رویدادهایی از قبیل AppilicationStart هیچ Session وجود ندارد.
اما من خودم از این روش در SessionStart استفاده کردم (البته برای چیز دیگری) و جواب داد و الآن هم کار میکند.

MehranZand
شنبه 18 فروردین 1386, 19:24 عصر
دوست بسیار عزیز
ممنون از توجهت.
من در روال اApplication_PreRequestHandlerExecute
استفاده کردم و نشد.
سشن در روال BeginRequest ظاهرا قابل دسترس نیست!
و همینطور که گفتم با استقاده از کوکی و روال BeginRequest مشکل
را حل کردم.
البته کاربر عزیز nazinam هم سشن و روال اApplication_PreRequestHandlerExecute امتحان کرده و مشکلی نداشته!
من می خواهم بدانم مشکل من از کجا بوده