لا يمكن تحميل مرفق Asp أو تم الإبلاغ عن خطأ في وقت تشغيل Microsoft VBScript "800a0005". استدعاء إجراء غير صالح أو معلمة: الحل "chr" بالأمس، قمت بإعادة تثبيت النظام على خادم الشركة عندما واجهت أن مرفق Asp لا يمكن تحميله. لقد كان يعمل بشكل جيد على الخادم السابق، نعم، إنه لا يعمل بشكل صحيح بعد إعادته، لذلك قمت بالبحث عنه في Google وإيقافه، وإليك الحل لمساعدة الأصدقاء الذين يواجهون هذه المشكلة في تجنب الانعطافات:
1. مشكلة الإذن
يرجى التأكد من أن المستخدم الضيف الموجود في مجلد الملف الذي تقوم بتحميله لديه أذونات قابلة للكتابة. يتم تخزين بعض الملفات في قاعدة البيانات ويجب أن يكون لديه أذونات تعديل أيضًا.
2. الحد الأقصى لحجم الملف
لأسباب أمنية، يحتوي IIS 6 على الحد الأقصى الافتراضي للطلب وهو 200 كيلو بايت (أي أن الحد الأقصى للبيانات المرسلة هو 200 كيلو بايت، 204800 بايت).
حل:قم بإغلاق خدمة خدمة مسؤول IIS
افتح /Windows/system32/inesrv/metabase.xml
قم بتعديل قيمة ASPMaxRequestEntityAllowed إلى ما تحتاجه، الافتراضي هو 204800
بدء تشغيل خدمة إدارة IIS
بعد التعديل، تحتاج أيضًا إلى تعديل ملف Machine.config
في Asp.net، الحجم الافتراضي للملفات التي تم تحميلها هو 4096 كيلو بايت، أي 4 ميجا، ولكن يمكنك تغيير هذه البيانات في Web.config. عادةً ما تكون الطريقة الأكثر شيوعًا هي تعديل ملف Machine.config مباشرة في الدليل C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/CONFIG (سيكون إصدار Framework مختلفًا، لذا أدخل الدليل الخاص بالإصدار الذي تستخدمه) ابحث عن httpruntime وقم بتغيير قيمة maxRequestLength إلى القيمة المثالية في هذا السطر. على سبيل المثال، إذا كنت تريد 8M، فأدخل 8192.
3. النظام الصيني، تم تثبيت التصحيح الإنجليزي لـ IIS
بعد الفحص، تبين أن المضيف الذي يستخدمه العميل هو الإصدار الصيني من Windows 2003، ثم تغير لاحقًا إلى مساحة الإصدار الإنجليزي من Windows، وحدث خطأ ما.
بشكل عام، تحدث نفس المشكلة أحيانًا بعد قيام النظام بترقية IIS أو تطبيق تصحيح، نحتاج فقط إلى إضافة جزء من التعليمات البرمجية قبل ملف ASP.
<!-- يجب أن يكون خط قبضة اليد في ASP -->
<%@LCID=4100%>
4. مشكلة اللغة
اضبط الإعدادات الإقليمية في لوحة التحكم على [الصين]
5. قضايا التاريخ والوقت
في لوحة التحكم، انتقل إلى الخيارات الإقليمية وخيارات اللغة، في الخيارات الإقليمية، اضبط تنسيق الوقت على: H:mm:ss، وقم بتغيير المنطقة الزمنية إلى بكين في التاريخ والوقت في لوحة التحكم (السبب في ذلك). تم تغيير هذا لأن بعض المرفقات التي تم تحميلها يتم تسميتها مع الوقت، إذا كان تنسيق الوقت خاطئًا، فسيقوم البرنامج بالإبلاغ عن خطأ)
6. الاسم الصيني أو المسار المستخدم للملفات التي تم تحميلها
إذا كنت تستخدم تحميل ASP بدون مكونات، نظرًا لأن اللغة الصينية غير مدعومة، فستحتاج إلى التحقق مما إذا كان مسار التحميل يحتوي على اللغة الصينية.
7. تم الإبلاغ عن خطأ في وقت تشغيل Microsoft VBScript '800a0005' استدعاء إجراء غير صالح أو معلمة: خطأ 'chr' (ينتمي هذا إلى هذا النوع من المشاكل)
خطأ وقت تشغيل Microsoft VBScript '800a0005' استدعاء أو وسيطة إجراء غير صالحة: 'Chr' /admin/inc/UPLOAD.INC،
السطر 75 قد يحدث مثل هذا الخطأ لأن الخادم يستخدم الإصدار الإنجليزي، لأن الدالة Chr ترجع سلسلة تحتوي على أحرف مرتبطة برمز الحرف المحدد.
بناء الجملة ذو الصلة: Chr(charcode) معلمة charcode الضرورية هي طويلة تستخدم لتحديد حرف معين. ملاحظة: الأرقام بين 0 و31 هي نفس رموز ASCII القياسية غير المطبوعة.
على سبيل المثال، تقوم Chr(10) بإرجاع حرف السطر الجديد. النطاق الطبيعي للرمز هو 0 - 255. ومع ذلك، في أنظمة DBCS، النطاق الفعلي للرمز الرمزي هو -32768 إلى 65535. ملاحظة: تعمل وظيفة ChrB على بيانات البايت الموجودة في السلسلة. يقوم ChrB دائمًا بإرجاع بايت واحد، بدلاً من إرجاع حرف قد يكون بايتًا واحدًا أو بايتين. تقوم الدالة ChrW بإرجاع سلسلة تحتوي على Unicode. على الأنظمة الأساسية التي لا تدعم Unicode، تكون وظيفتها هي نفس وظيفة Chr.
لذلك فقط استبدل chr في سطر الخطأ 75 من التعليمات البرمجية:temp=stemp&chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c))) بـ chrw.