لا يمكن تحميل مرفق 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.