• 0
conan

كيف يمكنني إطالة مدة ال session

سؤال

بسم الله الرحمن الرحيم

السلام عليكم

من فضلكم

كيف يمكنني إطالة مدة الـ session

حيث أنني أعمل في تطبيق تتطلب صفحاته ان يكون المستخدم قد قام بتسجيل الدخول

وفي كل صفحة أعمل check على بعض متغيرات الـ session والتي أعرف منها اذا كان المستخدم قد سجل الدخول أم لا.

المشكلة ان الـ session تنتهي في فترات قصيرة مما يؤدي الى ظهور شاشة تسجيل الدخول كثيرا - وهذا لا أرغبه

ولي ملحوظة - وهي ان الـ session تنتهي في أوقات غير محددة فأحيانا تنتهي فورا وأحيانا بعد دقيقة وأحيانا تعمل بشكل طبيعي

أشعر اني لا أتعامل مع session بل أتعامل مع عفريت :blink:

ما أريده هو ان تبقى الـ session شغالة نصف ساعة قبل ان تنتهي

أرجو المساعدة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

23 إجابة على هذا السؤال .

  • 0

اولا يكون الوقت الافتراضي لإنتهائها هو 20 دقيقة فقط و كي تقوم بتغييره اكتب التالي :

Session.TimeOut=30

أو أي وقت و قد يكون أقل من 20 حسب ما تريد .. ولكن قصة أنها تنتهي بسرعة فأعتقد أنك استخدمت Session.Abandon أو Session.Remove أو session.RemoveAll هنا أو هناك من خلال الأحداث و بالتالي عليك أن تراجع الكود الذي كتبته ..

حظا موفقا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

اخي محمد خليل ابو صلاح

اضن ان الاخ يعاني من نفس المشكلة التي واجهتني و تم النقاش فيها على هذا الرابط

http://www.arabteam2000-forum.com/index.php?showtopic=53473

لكن الجديد قي القضية هذه المقالة التي تتحدث عن وحود bugs

في الدوت نت

ونحتاج لتنزيل sp1

لتصحيح هذه الاخطاء اخي محمد ما رايك هل يمكن ان يكون هذا هو السبب

http://www.arabteam2000-forum.com/index.php?showtopic=54713

ان لم اجرب بعد لاني اشتغلت والحمد لله ثم لدعاء الاخوان الصادقين امثالكم

وجزاكم الله كل خير اخي انتظر تعليقك بكل شوق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بالنسبة لهذه المقالة

http://www.arabteam2000-forum.com/index.php?showtopic=54713

فهناك فعلا bug في بعض اصدارات framework 1.1 وليس جميع الاصدارات

وهناك اسباب أخرى لظهور هذه المشكلة وهو عندما تضع موقعك في مجلد فرعي ليظهر كـ sub domain (وكان هذا هو الحال عندي ولم يكن السيرفر الذي أعمل استضافة عنده هو السبب وعندما نقلت التطبيق الى المجلد الرئيسي اشتغل كل شئ تمام)

أما بالنسبة للـ session فهي أحيانا تعمل وأحيانا لا تعمل

انا لم استعمل Session.Abandon أو Session.Remove أو session.RemoveAll

كيف استطيع تظبيط الـ session من Web.config ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ان كنت "بتظبيط" زيادة مدة صلاحيتها فكما ترا في الاسفل الصفة timeout لل

sessionState مسؤولة عن مدة صلاحية ال session

    <sessionState 
           mode="InProc"
           stateConnectionString="tcpip=127.0.0.1:42424"
           sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
           cookieless="false"
           timeout="20"
   />

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخواني لا اريد ان اكون متشائم بس ما ظنيت انها راح تزبط اذا غيرنا

web,config

لاني جربتها في احد محاولاتي الفاشلة

ارجو ان نجد الحل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هناك طريقة بربط SESSION

مع SQL

وهذه مقالة

عن الموضوع لكن بصراحة ما افهمت 100% فما اعرقت اطبق ارجو ان يكون مفيد

بيانات الجلسه و SQL Server

المستوى: مبتدئ      الاصدار: .NET 1.0, .NET 1.1

--------------------------------------------------------------------------------

يمكنك عزيزي القارئ حفظ بيانات الجلسه Session في ASP.NET بالاعتماد على محرك قواعد بيانات ضخم ألا وهو Microsoft SQL Server 2000 وإليك الطريقه :

1.بداية علينا تشغيل الملفInstallSqlState.sql الذي يحتوي على الـ T-SQL Statements اللازمه لإنشاء قاعدة البيانات, اذهب :

<Local Drive>\<Windows Folder>\Microsoft.NET\Framework\v1.0.2914

2.سيقوم الملف السابق حال تشغيله بإنشاء قاعدة بيانات بالإسم ASPState بالإضافة الى جدولين Tables في قاعدة بيانات Tempdb .

3.علينا الان تعديل ملف web.config وبالأخص sessionState الى التالي :

<sessionState mode="SQLServer"

sqlConnectionString="data source=GATEWAY;trusted_connection=true;userid=sa;password=;"

cookieless="false"

timeout="20" />

GATEWAY تعبر عن اسم الجهاز الذي عليه SQL Server

4.الان عزيزي قم بتجربة الكود التالي في صفحة ASP.NET

Session(“mySession”)=TextBox1.Text

كيفية الغاء قاعدة البيانات والجداول

لإلغاء هذه الجداول وقاعدة البيانات ما عليك الا تشغيل الملف UninstallSQLState.sql والموجود في نفس المجلد الموجود فيه الملف InstallSqlState.sql .

اذا زبطت اخي ياريت تحكيلنا الطريقة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ما المشكلة ؟

هل جربت طريقة ال web.config وبم تعمل أم ان الموضوع عن استخدام SQL server من أجل ال session؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

ما المشكلة ؟

هل جربت طريقة ال web.config

اخي الكريم اطالة

timeout

ما زبطت

ام بانسبة لي

عن استخدام SQL server من أجل ال session؟

فهذا كان اقتراح بديل لكن للاسف ان لم افهم المقال جيدا ووضعت المقال عسى ان يفهموا احد الاخوان ويفهمني

لكن هذا الحل لا يغني عن معرفة سبب المشكلة الاصلية

والله مشكلة بتحير

ارجو ان تساعدنا في الحل

وجزاك الله كل خير يا مشرفنا العزيز

تم تعديل بواسطه ابو السموأل
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ان طريقة تخزين ال session في sql server هي ليست من اجل اطالة مدة الجلسة (session) بل هي من أجل تخزين بيانات الجلسة في قاعدة البيانات بدلا من تخزينها في الذاكرة وهذه الطريقة بالطبع أبطأ بطثير من التخزين في الذاكرة لكنها مفيدة عندما يكون التخزين في الذاكرة غير ممكن مثلا عندما توزع برنامج على عدد من الكمبيوترات المنفصلة وتستخدم برنامج لتوزع الطلبات على السرفرات أو ما يسمى web farm وعندها لن تستطيع ضمان ان عمليات ال postback سوف تتم على سرفر واحد أي أن بيانات الجلسة المخزنة على كمبيوتر ما لن تكون متوفرة على كمبيوتر ثاني.

ان كنت تريد فساحاول ان اشرح لك كيف تتم عملية نقل الجلسة على sql server لكن ليس لها علاقة مباشرة بمسالة الوقت.

اما بالنسبة لعدم نجاح اطالة المدة عن طريق web.config فهل أن متاكد أنك مثلا ام تعيد بدء بناء المشروع ؟ فاعادة بناء المشروع او حتى تغير web.config يحذف كل البيانات المخزنة في الوقت الحالي بالsession

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله

جزاك الله كل خير يا اخي على المعلومات القيمة

ان كنت تريد فساحاول ان اشرح لك كيف تتم عملية نقل الجلسة على sql server

نعم اريد ان تشرح لي الطريقة لو سمحت وجزاك الله كل خير

اخي لو سمحت تشرح حبا حبا عشان مخي تخين شوي :D

وبارك الله فيك انتظر الشرح بفارغ الصبر

تم تعديل بواسطه ابو السموأل
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اعتذر كثيرا عن التاخير ولكنه حصلت بعض المشاكل في خط الانترنت في البيت فالان لا استطيع الدخول الى الانترنت سوى من العمل والجامعة حيث لا يوجدكيبورد عربي. لذلك ساقوم بكتابة الرد في البيت وارسله هنا الاثنين فغداوبعدغد عطلة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

حسنا يا ابو السموأل

الحل بسيط جدا ويتمثل في خطوتين

أولا انشاء قاعدة البيانات التي سيتم تخزين بيانات السشن فيها

وثانيا اخبار صفحات ال asp.net ان تخزن الشسن في هذه القاعدة

انشاء قاعدة البيانات امر سهل لكنه يعمل فقط مع sql server

اولا قم بفتح ال query analyzer ومن ضمنه قم بفتح ملف اسمه InstallSqlState.sql موجود ضمن مجلد الدوت نت على جهازك اي مثلا

\Windows\Microsoft.NET\Framework\ system drive Version\

بعد ذلك قم بضغط F5 من أجل تنفيذ هذا السكربت وعند الانتها ستجد ضمن قواعد البيانات قاعدة تسمى على ما اذكر AspState

الخطوة الاخير تتمثل باخبار asp.net اين سيخزن الشسن ةهذا يكون عن طريق web.config

قم بفتح هذا الملف وابحث عن القسم sessionState

وغيره على الشكل التالي

<sessionState mode="SQLServer" sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>" cookieless="false" timeout="20" />

اليوم بعد الشهر ساقدم اخر فحص لي لهذا الفصل وبعده تبدا العطلة واتفرغ قليلا :D

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاك الله كل خير

ساجرب

اتمنى لك امتحان موفق وعقبال التخرج

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخي العزيز هناك مشكلة جديدة ان المستضيف لا يسمح الا بعمل database

واحدة للموقع فما الحل لا استطيع اضافة AspState لانها database مستقلة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

:D الحمد لله زبطت اخير

جزاك الله كل خير اخي

dotnetexpert

على الشرح

وطبعا اشكر الشركة المستضيفة

vision-soft.org

للتعاون

والمساعدة الدائمة (h)

تم و الحمد لله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .