O anexo Asp não pode ser carregado ou um erro de tempo de execução do Microsoft VBScript '800a0005' é relatado Chamada de procedimento ou parâmetro inválido: 'chr'.
Ontem refiz o sistema no servidor da empresa, mas encontrei um problema em que os anexos Asp não podiam ser carregados. Funcionava bem no servidor antes, mas não funcionou corretamente depois de refazê-lo, então pesquisei no Google e no Baidu. Enviarei a solução abaixo para me ajudar quando encontrar esse problema. Amigos com problemas devem evitar desvios:
1. Problema de permissão
Certifique-se de que a pasta "usuário convidado" na qual você carregou o arquivo tenha permissões de gravação. Alguns arquivos são armazenados no banco de dados e também devem ter permissões de modificação.
2. Limite de tamanho de arquivo
Por motivos de segurança, o IIS 6 tem uma solicitação máxima padrão de 200K (ou seja, o limite máximo de dados enviados é 200KByte, 204800Byte).
Solução:Feche o serviço de administração do IIS
Abra /Windows/system32/inesrv/metabase.xml
Modifique o valor de ASPMaxRequestEntityAllowed para o que você precisa, o padrão é 204800
Inicie o serviço de administração do IIS
Após a modificação, você também precisa modificar o arquivo machine.config
No Asp.net, o tamanho padrão dos arquivos carregados é 4.096 KB, que é 4M, mas você pode alterar esses dados no Web.config. Normalmente o método mais comum é modificar diretamente o arquivo machine.config no diretório C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/CONFIG (a versão do Framework será diferente, então insira o diretório de qual versão você usa ). Encontre httpruntime e altere o valor de maxRequestLength para o valor ideal nesta linha. Por exemplo, se você quiser 8M, insira 8192.
3. Sistema chinês, patch em inglês instalado do IIS
Após inspeção, constatou-se que o host utilizado pelo cliente era a versão chinesa do Windows 2003, posteriormente alterado para o espaço da versão em inglês do Windows, e algo deu errado.
Geralmente, o mesmo problema às vezes ocorre depois que o sistema atualiza o IIS ou aplica um patch. Precisamos apenas adicionar um trecho de código antes do arquivo ASP.
<!-- deve ser a primeira linha em ASP -->
<% @LCID=4100%>
4.Problema de idioma
Defina as configurações regionais no painel de controle para [China]
5. Problemas de data e hora
No painel de controle, vá para as opções regionais e de idioma Nas opções regionais, defina o formato da hora para: H:mm:ss, e altere o fuso horário para Pequim em "Data e Hora" do painel de controle (. A razão pela qual mudei isso é porque alguns anexos recebem o nome da hora. Se o formato da hora estiver errado, o programa reportará um erro.
6. Nome ou caminho chinês usado para arquivos enviados
Se você usar upload sem componentes ASP, porque o chinês não é suportado, será necessário verificar se o caminho de upload contém chinês.
7. "Erro de erro de tempo de execução do Microsoft VBScript '800a0005' Chamada ou parâmetro de procedimento inválido: erro 'chr'" é relatado (o meu pertence a esse tipo de problema)
Erro de tempo de execução do Microsoft VBScript '800a0005' Chamada ou argumento de procedimento inválido: 'Chr' /admin/inc/UPLOAD.INC,
Linha 75 Tal erro pode ocorrer porque o servidor está usando a versão em inglês, pois a função Chr retorna String, que contém caracteres relacionados ao código de caractere especificado.
Sintaxe relacionada: Chr(charcode) O parâmetro charcode necessário é um Long usado para identificar um determinado caractere. Nota: Os números entre 0 e 31 são iguais aos códigos ASCII não imprimíveis padrão.
Por exemplo, Chr(10) retorna o caractere de nova linha. O intervalo normal do código de caracteres é de 0 a 255. No entanto, em sistemas DBCS, o intervalo real do código de caracteres é de -32768 a 65535. Nota: A função ChrB opera em dados de bytes contidos em uma String. ChrB sempre retorna um único byte, em vez de retornar um caractere, que pode ser um ou dois bytes. A função ChrW retorna uma String contendo Unicode. Em plataformas que não suportam Unicode, sua funcionalidade é a mesma da função Chr.
Portanto, basta substituir o chr na linha de erro 75 da linha de código: stemp=stemp&chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c))) por chrw.