سؤال

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

يظهر عندما يكون المستخدمون ينقلون إلى الصفحة، حدد ملف مورد من قائمة وانقر فوق تحرير المرة الأولى. تقوم الصفحة بتحميل الملف في GridView ويسمح لهم بتحريره. في هذه المرحلة، يتم حفظ متغيرات الجلسة إعادة تحميلها بشكل صحيح على جميع أبعد من ذلك. الآن، يقومون بالنقر فوق الزر "حفظ" في الأسفل إلى كتابة ملف المورد إلى نظام الملفات (App_localResources). إنهم يختارون ملف جديد من القائمة، ومحاولة تحميله، وهذه المرة يتم تطهير متغيرات الجلسة ويعيد توجيهها إلى صفحة تسجيل الدخول لأنها لا تعرف معلومات المستخدم.

التفاصيل المضمنة:

يحدث ذلك فقط عند النقر فوق الزر "حفظ" يستدعي الإجراء الخاص بي للكتابة إلى ملف المورد.

أنا لا أفعل الكثير في وظيفة "حفظ" إلى جانب الكتابة إلى ملف مورد موجود في app_localresources ولسبب ما يتضح هذا متغيرات جلستي.

تتوفر متغير الجلسة في السؤال معلومات المستخدم، والتي أحاول الحصول عليها كأول شيء في طريقة تحميل الصفحة.

يتم تنفيذ معلومات الجلسة هذه أيضا على كل عملية إعادة البريد عبر طريقة Page_load.

شكرا للجميع، آمل أني وصفت هذا جيدا بما فيه الكفاية.

هل كانت مفيدة؟

المحلول

سوف يقوم IIS بإعادة تعيين التطبيق عند تغيير الملفات في الدليل المرتبط بالتطبيق. إعادة تعيين التطبيق سيجعلك تفقد جلسات الذاكرة.

يمكنك وضع ملف المورد خارج الدليل. أو استخدم Stateerver للجلسات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top