الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

مغلق
بدأه conan في 16 يناير 2005 · 23 رد · 9,072 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

السلام عليكم

من فضلكم

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

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

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

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

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

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

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

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

#2

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

Session.TimeOut=30

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

حظا موفقا

You can fly while you can touch the sky

#3

السلام عليكم

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

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

/index.php?showtopic=53473

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

في الدوت نت

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

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

/index.php?showtopic=54713

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

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

#4

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

/index.php?showtopic=54713

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

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

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

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

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

#5

ان كنت "بتظبيط" زيادة مدة صلاحيتها فكما ترا في الاسفل الصفة 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" 
    />

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#6

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

web,config

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

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

#7

هناك طريقة بربط 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 .

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

#8

السلام عليكم

اخواني يبدوا ان الموضوع سيتوقف كما توقف هنا

/index.php?showtopic=53473

شو العمل :blink:

#9

فكر

#10

ما المشكلة ؟

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

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#11

السلام عليكم

اقتباس
ما المشكلة ؟

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

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

timeout

ما زبطت

ام بانسبة لي

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

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

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

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

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

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

تم تعديل هذه المشاركة بواسطة ابو السموأل في 20 يناير 2005 في 20:18

#12

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

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

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

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#13

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

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

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

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

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

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

تم تعديل هذه المشاركة بواسطة ابو السموأل في 21 يناير 2005 في 03:21

#14

كل عام وانتم بخير

#15

مشرفنا العزيز اين انت

DotNetExpert

#16

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

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#17

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

في انتظار الشرح :D

#18

للرفع

#19

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

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

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

وثانيا اخبار صفحات ال 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

وحدن بيبقو متل زهر البيلسان وحدهن بيقطفو وراق الزمان

بيسكرو الغابي بيضلهن متل الشتي يدقوا على بوابي على بوابي

يا زمان يا عشب داشر فوق هالحيطان ضويت ورد الليل عكتابي

برج الحمام مسور و عالي هج الحمام بقيت لحالي لحالي

يا ناطرين التلج ما عاد بدكن ترجعو صرخ عليهن بالشتي يا ديب بلكي بيسمعو

http://www.mazikana.com/Songs/F/Fayrouz/mp...uz---Wahdon.mp3

#20

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

ساجرب

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

#21

يا شباب ما هو session ؟

#22

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

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

#23

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

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

dotnetexpert

على الشرح

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

vision-soft.org

للتعاون

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

تم و الحمد لله

#24

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

هذا الموضوع مغلق.

مواضيع مشابهة