Невозможно загрузить вложение 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.