PRB: جلسة العمل يتم فقدان البيانات عند استخدام وضع حالة جلسة العمل InProc ASP.NET

الأعراض

تظهر بيانات جلسة العمل لتطبيقات ويب ASP.NET تفقد بشكل عشوائي الفواصل الزمنية لوضع حالة جلسة العمل InProc.

السبب

يتم فقدان بيانات حالة جلسة العمل إذا كان المعاد تدويرها AppDomain أو عملية Aspnet_wp.exe (أو عملية W3wp.exe، للتطبيقات التي تعمل في "خدمات معلومات الإنترنت" [IIS] 6.0). وبشكل عام، يتم إعادة تشغيل AppDomain استناداً إلى عدة عوامل:
  • سمات مختلف (على سبيل المثال، سمة memoryLimit ) لها إعدادات معينة في قسم < processModel > من ملف التكوين.
  • تم تعديل ملف Web.config أو في Global.asax.
  • تعديل الدليل حاوية تطبيق ويب.
  • برنامج مكافحة الفيروسات لمست بعض الملفات.config. للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
    316148 PRB: يتم فقدان متغيرات جلسة العمل بشكل متقطع في تطبيقات ASP.NET
وضع جلسة العمل InProc يشير إلى أنه يتم تخزين حالة جلسة العمل محلياً. وهذا يعني أن الدورة InProc وضع يتم تخزينها ككائنات الحياة في مجال التطبيق لتطبيق ويب. هذا السبب في حالة جلسة العمل عندما يفقد Aspnet_wp.exe (أو W3wp.exe للتطبيقات التي تعمل في "خدمات معلومات الإنترنت" [IIS] 6.0) أو إعادة تشغيل AppDomain.

الحل

للتغلب على هذه المشكلة، يمكنك استخدام وضع حالة جلسة العمل StateServer أو SqlServer. يوفر ASP.NET هذه الطرق لتخزين بيانات حالة جلسة العمل. في أوضاع SqlServer و StateServer، حالة جلسة العمل الخاصة بك غير مخزنة في AppDomain لتطبيق ويب.

ملاحظة: من المهم فهم السلوك والمشاكل المرتبطة بكل وضع حالة جلسة العمل عندما تقرر هو الوضع الذي يتناسب مع احتياجاتك. لمزيد من المعلومات، راجع قسم "المراجع" من هذه المقالة.

الحالة

يعتبر هذا السلوك حسب التصميم.

المراجع

لمزيد من المعلومات حول إدارة حالة جلسة عمل ASP.NET والمواضيع الأخرى ذات الصلة، قم بزيارة موقع Microsoft التالي على الويب:للحصول على معلومات إضافية، انقر فوق رقم المقال التالي لعرضه في "قاعدة معارف Microsoft":
معلومات 307598 : نظرة عامة حول إدارة حالة ASP.NET
خصائص

رقم الموضوع: 324772 - آخر مراجعة: 15‏/01‏/2017 - المراجعة: 1

تعليقات