تم تكوين البرنامج الذي قمت بتطويره ضمن نظام الملفات ضمن IIS، وكانت هناك بعض المشاكل مع ملفات تعريف الارتباط.
1. فقدان ملفات تعريف الارتباط. لقد كتبت مقالًا قبل بضعة أيام "مشكلة صعبة للغاية. لا يمكن لبرنامج الويب الذي تم تطويره وفقًا لآلية نظام الملفات باستخدام vs2005 أن يعمل بشكل طبيعي إذا تم تكوينه على iis؟" "" سجلت الحل الخاص بي لمشكلة فقدان ملفات تعريف الارتباط التي تخزن أذونات المسؤول المتميز. وعلى الرغم من حل المشكلة أخيرًا، إلا أنني لم أفهم السبب. في نهاية المقال، قدمت سببًا بعيد المنال لماذا يعمل بشكل طبيعي في ظل نظام الملفات ولكن ليس في ظل iis: يوفر نظام الملفات خادمًا صغيرًا في كل مرة يتم تصحيح أخطائه، ويتم إعادة تخصيص الذاكرة في كل مرة. المرة الأولى التي تقوم فيها بتشغيله تحت iis هي تخصيص الذاكرة. طالما أن البرنامج لا يتغير ولا يحتاج إلى إعادة الترجمة، فلن يتم إعادة تخصيص الذاكرة. اطلعت اليوم على "مجموعة الأسئلة الشائعة حول استخدام الجلسة في ASP.NET" المذكورة هنا: قد يكون الأمر مرتبطًا ببيئة الجهاز، مثل جدار الحماية أو برامج مكافحة الفيروسات وما إلى ذلك. حاول إيقاف تشغيل جدار الحماية (البرنامج يجب أن يكون سبب فقدان الجلسة مرتبطًا بسبب فقدان ملفات تعريف الارتباط (نفسه). أعتقد أن ما قاله منطقي. فالتشغيل ضمن نظام الملفات لا ينبغي أن يمر عبر جدار الحماية، ولكن التشغيل تحت iis يجب أن يمر عبر جدار الحماية. يبدو أنني لست الوحيد الذي يعاني من هذه المشكلة. لم أواجه أي فقدان لملفات تعريف الارتباط أو الجلسات عند استخدام asp.net1.1 من قبل.
2. كانت الأحرف الصينية في ملفات تعريف الارتباط مشوهة، واكتشفت فجأة الليلة الماضية أن هناك مشكلة أخرى في الأحرف الصينية في ملفات تعريف الارتباط ضمن IIS، والتي تظهر أحرفًا مشوهة.
استغرق حلها وقتا طويلا:
// عند كتابة ملفات تعريف الارتباط
السلسلة t =HttpUtility.UrlEncode (القيمة الصينية المراد كتابتها في ملفات تعريف الارتباط)؛
HttpCookie c = new HttpCookie("user_realname", t);
Response.Cookies.Add(c);
// عند قراءة ملفات تعريف الارتباط
t=قيمة ملف تعريف الارتباط الصيني الذي تم الحصول عليه؛
t = HttpUtility.UrlDecode(teacher_name);
هذا كل شيء.
قم بتذكير الأصدقاء الذين يستخدمون نظام الملفات vs2005 لتطوير المشاريع بالاهتمام.
يجب أن يكون سبب الاختلاف في تشغيل نظام الملفات ونظام iis متعلقًا بآليات التشغيل الخاصة بهما.