El archivo adjunto ASP no se puede cargar o se informa un error de tiempo de ejecución de Microsoft VBScript '800a0005' Llamada a procedimiento o parámetro no válido: 'chr'.
Ayer rehice el sistema en el servidor de la empresa, pero encontré un problema en el que no se podían cargar los archivos adjuntos de Asp. Antes funcionaba bien en el servidor, pero no funcionó correctamente después de rehacerlo, así que busqué en Google y lo hice. Te enviaré la solución a continuación para ayudarme con este problema. Los amigos con problemas deben evitar desviarse:
1.Problema de permisos
Asegúrese de que la carpeta "usuario invitado" en la que carga el archivo tenga permisos de escritura. Algunos archivos están almacenados en la base de datos y también deben tener permisos de modificación.
2. Límite de tamaño de archivo
Por razones de seguridad, IIS 6 tiene una solicitud máxima predeterminada de 200 K (es decir, el límite máximo de datos enviados es 200 KByte, 204800 Byte).
Solución:Cierre el servicio de administración de IIS
Abra /Windows/system32/inesrv/metabase.xml
Modifique el valor de ASPMaxRequestEntityAllowed a lo que necesite, el valor predeterminado es 204800
Iniciar el servicio de administración de IIS
Después de la modificación, también debe modificar el archivo machine.config
En Asp.net, el tamaño predeterminado de los archivos cargados es 4096 KB, que son 4 M, pero puede cambiar estos datos en Web.config. Por lo general, el método más común es modificar directamente el archivo machine.config en el directorio C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/CONFIG (la versión de Framework será diferente, así que ingrese el directorio de la versión que usa). ). Busque httpruntime y cambie el valor de maxRequestLength al valor ideal en esta línea. Por ejemplo, si desea 8M, ingrese 8192.
3. Sistema chino, parche en inglés instalado de IIS
Después de la inspección, se descubrió que el host utilizado por el cliente era la versión china de Windows 2003, y luego se cambió al espacio de la versión en inglés de Windows, y algo salió mal.
Generalmente, el mismo problema ocurre a veces después de que el sistema actualizó IIS o aplicó un parche. Solo necesitamos agregar un fragmento de código antes del archivo ASP.
<!-- debe ser la primera línea en ASP -->
<% @LCID=4100 %>
4.Problema de idioma
Establezca la configuración regional en el panel de control en [China]
5. Problemas de fecha y hora
En el panel de control, vaya a las opciones regionales y de idioma. En las opciones regionales, establezca el formato de hora en: H:mm:ss y cambie la zona horaria a Beijing en la "Fecha y hora" del panel de control (. La razón por la que cambié esto es porque algunos archivos adjuntos llevan el nombre de la hora. Si el formato de hora es incorrecto, el programa informará un error.
6. Nombre chino o ruta utilizada para los archivos cargados
Si utiliza la carga sin componentes ASP, debido a que el chino no es compatible, debe verificar si la ruta de carga contiene chino.
7. Se informa el error "Error de tiempo de ejecución de Microsoft VBScript '800a0005' Llamada a procedimiento o parámetro no válido: 'chr'" (el mío pertenece a este tipo de problema)
Error de tiempo de ejecución de Microsoft VBScript '800a0005' Llamada a procedimiento o argumento no válido: 'Chr' /admin/inc/UPLOAD.INC,
Línea 75 Tal error puede ocurrir porque el servidor está usando la versión en inglés, porque la función Chr devuelve una Cadena, que contiene caracteres relacionados con el código de carácter especificado.
Sintaxis relacionada: Chr(charcode) El parámetro charcode necesario es un Long que se utiliza para identificar un determinado carácter. Nota: Los números entre 0 y 31 son los mismos que los códigos ASCII estándar que no se imprimen.
Por ejemplo, Chr(10) devuelve el carácter de nueva línea. El rango normal de código de caracteres es 0 – 255. Sin embargo, en los sistemas DBCS, el rango real de códigos de caracteres es de -32768 a 65535. Nota: La función ChrB opera con datos de bytes contenidos en una cadena. ChrB siempre devuelve un solo byte, en lugar de devolver un carácter, que puede ser uno o dos bytes. La función ChrW devuelve una cadena que contiene Unicode. En plataformas que no admiten Unicode, su funcionalidad es la misma que la de la función Chr.
Así que simplemente reemplace chr en la línea de código de error 75: stemp=stemp&chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c))) con chrw.