برمجيا تشخيص ASP.Net الدورة الخسارة بسبب تطبيق إعادة التدوير ؟

StackOverflow https://stackoverflow.com/questions/401311

  •  03-07-2019
  •  | 
  •  

سؤال

لدينا ASP.Net 2.0 (VS2005) التطبيق الذي يعمل بشكل جيد محليا, ولكن في بعض الأحيان يفقد حالة جلسة العمل عند نشرها على ملقم بعيد.

وأظن مشكلة محتملة مع IIS recyling التطبيق وبالتالي تهب بعيدا المستخدمين الدورة الدولة.ومع ذلك الملقم البعيد ليست تحت سيطرتنا...لذا لا يمكننا ببساطة النار حتى مسؤول IIS و تحقق من إعدادات التطبيق.سبب آخر ممكن بالطبع سيكون العملاء رفض ASP.Net ملف تعريف ارتباط جلسة لسبب ما.

(لقد حد كبير استبعد خطأ في التعليمات البرمجية لدينا لأنه هو التطبيق بسيطة وأنه لم يحاول إزالة أي شيء من وجوه الدورة ولكن بالطبع...تلك هي الكلمات الأخيرة الشهيرة؟)

كيف يمكنك تشخيص هذا برمجيا?

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

أنا متأكد من أن هذا هو مشكلة شائعة بالنسبة ASP.Net المطورين.

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

المحلول

هنا بعض الروابط التي قد تساعد في استكشاف الأخطاء وإصلاحها هذا إذا كان يمكنك تغيير بعض الإعدادات:

تسجيل عامل عملية إعادة تدوير الأحداث في IIS 6.0 (IIS 6.0)

تسجيل ASP.NET تطبيق إيقاف تشغيل الأحداث

نصائح أخرى

إضافة بعض قطع الأشجار البرمجية العالمية.asax Application_Start طريقة وعليك أن تكون قادرا على رؤية عندما/إذا كانت الخسارة الناجمة عن تشغيل التطبيق(أو على الأقل ، سترى عندما يكون الملقم ابتداء ، إذا كنت تعرف الدورة كان خسر في نفس الوقت ، تعرف الجاني).

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

IIS تكوين أكثر من واحد عامل موضوع (ويب) في تجمع التطبيقات يمكن أن يسبب فقدان حالة جلسة العمل.

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

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

نأمل أن يساعد ، hydtechie

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