Невозможно загрузить вложение Asp, или отображается ошибка выполнения Microsoft VBScript «800a0005». Неверный вызов процедуры или решение «chr». Вчера я переделал систему на сервере компании. Когда я обнаружил, что вложение Asp не может быть загружено. на предыдущем сервере все работало нормально. Да, после того, как я его переделал, он не работает должным образом, поэтому я погуглил и добавил его, и вот решение, которое поможет друзьям, столкнувшимся с этой проблемой, избежать обходных путей:
1. Проблема с разрешением
Убедитесь, что гостевой пользователь в папке с загружаемым вами файлом имеет разрешения на запись. Некоторые файлы хранятся в базе данных, а также должны иметь разрешения на изменение.
2. Ограничение размера файла
По соображениям безопасности в IIS 6 максимальный размер запроса по умолчанию составляет 200 КБ (то есть максимальный размер отправляемых данных составляет 200 КБ, 204 800 байт).
Решение:Закройте службу администрирования 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. Проблемы с датой и временем
В панели управления перейдите к региональным и языковым параметрам, установите формат времени: Ч: мм: сс и измените часовой пояс на Пекин в дате и времени панели управления (причина, по которой я. это изменено, потому что некоторые загруженные вложения имеют имя со временем, если формат времени неправильный, программа сообщит об ошибке)
6. Китайское имя или путь, используемые для загружаемых файлов.
Если вы используете бескомпонентную загрузку ASP, поскольку китайский язык не поддерживается, вам необходимо проверить, содержит ли путь загрузки китайский язык.
7. Сообщается об ошибке выполнения Microsoft VBScript «800a0005». Неверный вызов процедуры или параметр: ошибка «chr» (моя относится к этому типу проблем).
Ошибка выполнения Microsoft VBScript «800a0005». Недопустимый вызов процедуры или аргумент: «Chr» /admin/inc/UPLOAD.INC,
Строка 75. Такая ошибка может возникнуть из-за того, что сервер использует английскую версию, поскольку функция Chr возвращает строку, содержащую символы, относящиеся к указанному коду символа.
Связанный синтаксис: Chr(charcode) Необходимым параметром charcode является значение Long, используемое для идентификации определенного символа. Примечание. Числа от 0 до 31 соответствуют стандартным непечатаемым кодам ASCII.
Например, Chr(10) возвращает символ новой строки. Обычный диапазон символьного кода составляет 0–255. Однако в системах DBCS фактический диапазон кодов составляет от -32768 до 65535. Примечание. Функция ChrB работает с байтовыми данными, содержащимися в строке. ChrB всегда возвращает один байт, а не символ, который может состоять из одного или двух байтов. Функция ChrW возвращает строку, содержащую Юникод. На платформах, не поддерживающих Юникод, ее функциональность аналогична функции Chr.
Поэтому просто замените chr в строке ошибки 75: Stemp=stemp&chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c))) на chrw.