عند الوصول إلى صفحة ASP، فإنه يطالب خطأ كائن الاستجابة ASP 0156: 80004005 خطأ رأس HTTP؟، قام السطر 0 بإخراج رأس HTTP إلى متصفح العميل. يجب إجراء أي تعديلات على رؤوس HTTP قبل إخراج محتوى الصفحة.
في الواقع، يرجع هذا النوع من المشكلات إلى مشكلات التخزين المؤقت، ويمكنك الرجوع إلى الطرق التالية لحلها:
ستحتوي بعض صفحات ASP على خطأ في كائن الاستجابة 'ASP 0156: 80004005' وخطأ في رأس HTTP عند فتحها لأول مرة، ولكنها تعود إلى طبيعتها مرة أخرى بعد التحديث
انسخ رمز الكود كما يلي:
Response.Buffer = صحيح
"يجب أن يكون هذا الخط، سيكون على ما يرام إذا قمت بإزالته."
"إذا كان لا يزال لا يعمل، فقط."
Response.Buffer = صحيح
Response.ExpiresAbsolute = Now() - 1
الاستجابة.انتهاء الصلاحية = 0
Response.CacheControl = "لا توجد ذاكرة تخزين مؤقت"
Response.AddHeader "Pragma"، "بدون ذاكرة تخزين مؤقت"
"قم بإزالتها جميعًا." يُستخدم هذا لعدم تخزين الصفحة مؤقتًا. ولا ينبغي أن تؤثر إزالتها على موقع الويب.
يحدث هذا الخطأ لأن خادم الويب يستخدم رأس HTTP لإعداد متصفح العميل. يحاول خادم الويب بعد ذلك إعادة تعيين مستعرض العميل باستخدام رؤوس HTTP إضافية (على سبيل المثال، عندما يتم إصدار رأس HTTP بعد أن يقوم المستعرض بتعيين content-type = text/html). مثال على ذلك هو عند معالجة صفحة ASP قبل تضمين علامة HTML أو أي عبارة Response.Redirect لبرنامج نصي آخر من جانب الخادم.
ملاحظة يمكن أن يحدث هذا أيضًا إذا قمت بترقية جهاز كمبيوتر يعمل بنظام التشغيل Microsoft Windows NT 4.0 إلى Microsoft Windows Server 2003.
مثال على ذلك هو عند معالجة صفحة ASP قبل تضمين علامة HTML أو أي عبارة Response.Redirect لبرنامج نصي آخر من جانب الخادم.
الخصائص والأساليب التالية لـ ASP لكائن الاستجابة تكتب رؤوس HTTP:
Response.AddHeader
Response.CacheControl
Response.CharSet
Response.ContentType
الاستجابة.انتهاء الصلاحية
Response.ExpiresAbsolute
الاستجابة.إعادة التوجيه
الاستجابة.الحالة
العودة إلى الأعلى
حل
لحل هذه المشكلة، قم بتعيين رؤوس HTTP، مثل عبارة إعادة التوجيه أو معلومات ملف تعريف الارتباط قبل إرسال مخرجات HTML.
على سبيل المثال، لتجنب هذا الخطأ أثناء إعادة التوجيه، قم بتقييد المخزن المؤقت أو معالجة صفحة ASP ثم قم بإصدار إعادة التوجيه بعد المعالجة. هناك طريقتان لإنجاز التخزين المؤقت: على مستوى الصفحة أو على مستوى التطبيق.
لاحظ أنه يتم إصدار كافة البرامج النصية لـ ASP بعد إعادة التوجيه. إذا تمت إعادة توجيه صفحة ASP قبل إصدارها إلى برنامج نصي ASP، فلن تتم معالجة رمز ASP.
عند معالجتها على مستوى التطبيق، يتم تخزين كافة صفحات ASP الموجودة في تطبيق الويب مؤقتًا. لتعيين التخزين المؤقت على مستوى التطبيق، اتبع الخطوات التالية: 1. في وحدة التحكم بالإدارة لـ Microsoft (MMC)، حدد موقع الويب الذي يوجد به تطبيق الويب.
2. انقر لتوسيع موقع الويب لعرض الدليل الظاهري وتطبيق الويب.
3. انقر بزر الماوس الأيمن فوق تطبيق الويب، ثم انقر فوق خصائص.
4. في علامة التبويب Virtual Directory، انقر فوق تكوين.
لاحظ أنه في حالة عدم توفر زر التكوين، فإن الدليل الظاهري ليس تطبيق ويب. انقر فوق "إنشاء" لإنشاء الدليل الظاهري لتطبيق الويب.
5. في مربع الحوار ApplicationConfiguration@@، في علامة التبويب خيارات التطبيق، انقر فوق تمكين التخزين المؤقت.
لتعيين مستوى الصفحة للتخزين المؤقت، أضف التعليمات البرمجية بعد سطر @LANGUAGE في صفحة ASP كما هو موضح أدناه:
<% @LANGUAGE = "VBScript" %><% Response.Buffer = True %>برامج نصية أو HTML أخرى لـ ASP/Clientside ...<% Response.Redirect %>كما يوضح التعليمة البرمجية التالية، بالإضافة إلى ذلك، يمكن استخدام إعدادات ملفات تعريف الارتباط على مستوى الصفحة، على المخزن المؤقت. يقوم مقتطف الكود هذا بكتابة ملف تعريف الارتباط قبل إرسال علامة (عنصر) <HTML>.
Response.Cookies("Name")=value<HTML>...المحتوى...</HTML>
إذا كنت تستخدم زوبعة صغيرة، فهي تفتقد المكونات.