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

مشكلة فى الsession مع Output Cach

مغلق
بدأه بسام القاضى في 23 سبتمبر 2007 · 1 رد · 484 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مشكلة بحاجة الى معالجة عاجلة

الاخوة الاعزاء رمظان كريم وكل عام وانتم بالف خير

اقوم باخذ عدد من السيشن عند دخولى على شاشة الLogin لبرنامج ما

وللعلم استخدم Output Cach وقيمة ال Duration=60

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

اعتقد ان الاحتفاض بالصفحات فى الكاش هو السبب فى عدم تحديث قيمة الــ Session

ان قمت بعمل Remove للكاش ... يعنى لم يعد للكاش اى فعالية ......

ماهي الحلول التى ترونها مناسبة

#2

السلام عليكم

أحد الزملاء سألني نفس السؤال منذ يومين:

هنالك حلان لمشكلتك

الأول هو أن تستخدم Partial Caching و ذلك بإعادة كتابة صفحتك و استخدام User Controls بحيث تضع Caching داخل User Controls و الاشياء التي لا تريد عمل عليها Caching تضعها في الصفحة. أيضاً هنا لديك الخيار بأن تقوم يعملية Caching بشكل برمجي في الكود بحيث تحفظ الكائنات التي تريد.

الحل الثاني هو بإستخدام Substitution وهو كنتورل في ASP.NET 2.0 بحيث تعمله كاللآتي

<asp:Substitution ID="Substitution1" runat="server" MethodName="getUserName" />

ثم تقوم بكتابة الدالة getUserName مع ملاحظة انه يجب ان تكون دالة ثابته Static Method و تستقبل كائن من نوع HTTPContext كالشكل التالي

public static string getUserName( HttpContext context)

{

return (string)context.Session["userName"];

}

للأسف لاحظت أن هنالك مشكلة وهي أنه في المرة الأولى يتم التنفيذ بشكل سليم لكن عندما أقوم بعملية تحديث الصفحة أو زيارتها مرة أخرى يحدث خطأ. و الله العالم أنه هنالك مشكلة و قمت بنشرها اليوم على موقع ASP.NET هنــــا إذا أردت المتابعة. هذه المشكلة تحدث فقط عند استخدام HTTP Session فقط مع Caching . قمت بعملية Debugging ولاحظت انه في المرة الأول الكائن Session داخل context يكون له قيمة لكن في المرة الثانية يصيح Null

على العموم تستطيع حل مشكلتك في الوقت الحالي بإستخدام الطريقة الأولى أو متابعة ما نشرته في موقع ASP.NET

تم تعديل هذه المشاركة بواسطة nawaf227 في 23 سبتمبر 2007 في 18:54

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

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