سؤال

للحفاظ على الأمور بسيطة ، لدينا عدد قليل من صفحات ASPX ...

page1.aspx - إعادة تعيين معلومات الجلسة.
page2.aspx - نموذج البحث مع النتائج ويحدد متغيرات الجلسة.
page3.aspx ، page4.aspx ، page5.aspx - تتطلب متغيرات الجلسة المحددة على page2.aspx

ما نجده هو أنه مع تحميل page2.aspx وتشكيل متغيرات الجلسة ، يتم استدعاء page1.aspx وإعادة ضبط الجلسة. ومع ذلك ، يظهر Page1.aspx في المتصفح ، وليس Page2.aspx. لقد تمكنا فقط من العثور على هذا يحدث أثناء صعودنا إلى الكود ووضع نقاط الاستراحة في أحداث Page_Load لـ Page1.aspx و Page2.aspx وفوجئنا برؤية Page2.aspx يتم معالجتها بمجرد أن توقف Page1.aspx عن المعالجة على الخادم.

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

تحديث:
قد يكون بسبب المصادقة؟ يبدو أنه عندما أقوم بالوصول إلى page2.aspx ، ربما يكون الخادم مصادقة مرة أخرى على page1.aspx؟ هل هذا نموذجي؟

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

المحلول

شكرا على النصيحة أندرو.

لقد اكتشفنا ما كان يحدث ... page1.aspx في التطبيق هو افتراضي حقًا. على page2.aspx ، وضع مطور آخر علامة IMG على الصفحة التي لم يتم تحديد خاصية SRC. لذلك عندما تم تنفيذ Page2.aspx ، كان يبحث عن صورة موجودة على مستوى جذر موقع الويب ، ثم أدى هذا إلى تشغيل الرمز على Default.aspx (Page1) ومسح الجلسة.

بشكل عام ، بدا الأمر كهذا ...

على page2.aspx

<img src=""> <!-- this ended up triggering a call to Default.aspx, wiping the session -->

نأمل أن يساعد ذلك شخص آخر.

نصائح أخرى

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

من المحتمل أن يكون مجال التطبيق الخاص بك هو إعادة التدوير ، وبالتالي ، يتم فقد جميع متغيرات الجلسة وربما يكون لديك رمز يعيد توجيه الزائر إذا كانت متغيرات الجلسة مفقودة ، أليس كذلك؟

إذا كان هذا هو الحال ، مع الإصلاح السريع ، يمكنك استخدام مستأجرة الولايات أو تخزين متغيرات الجلسة الخاصة بك في SQL Server. لا ينبغي إعادة تدوير مجال التطبيق الخاص بك في كل دقيقة ، ولكنه قد يتسبب في سلوكك الذي تراه إذا كنت تقوم بتخزين جلسات "في العملية" ، وهو الافتراضي.

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