La pièce jointe Asp ne peut pas être téléchargée ou une erreur d'exécution Microsoft VBScript « 800a0005 » est signalée. Appel de procédure ou paramètre non valide : « chr ».
Hier, j'ai refait le système sur le serveur de l'entreprise, mais j'ai rencontré un problème où les pièces jointes Asp ne pouvaient pas être téléchargées. Cela fonctionnait bien sur le serveur auparavant, mais cela n'a pas fonctionné correctement après l'avoir refait. J'ai donc cherché sur Google et baidu, et. Je vous enverrai la solution ci-dessous pour m'aider à résoudre ce problème. Les amis en difficulté devraient éviter de faire des détours :
1.Problème d'autorisation
Veuillez vous assurer que le dossier « utilisateur invité » dans lequel vous téléchargez le fichier dispose d'autorisations d'écriture. Certains fichiers sont stockés dans la base de données et doivent également disposer d'autorisations de modification.
2. Limite de taille de fichier
Pour des raisons de sécurité, IIS 6 a une requête maximale par défaut de 200 Ko (c'est-à-dire que la limite maximale de données soumises est de 200 Ko, 204 800 octets).
Solution:Fermez le service du service d'administration IIS
Ouvrez /Windows/system32/inesrv/metabase.xml
Modifiez la valeur de ASPMaxRequestEntityAllowed selon vos besoins, la valeur par défaut est 204800.
Démarrer le service d'administration IIS
Après modification, vous devez également modifier le fichier machine.config
Dans Asp.net, la taille par défaut des fichiers téléchargés est de 4 096 Ko, soit 4 Mo, mais vous pouvez modifier ces données dans Web.config. Habituellement, la méthode la plus courante consiste à modifier directement le fichier machine.config dans le répertoire C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/CONFIG (la version du Framework sera différente, entrez donc le répertoire de la version que vous utilisez ). Recherchez httpruntime et remplacez la valeur de maxRequestLength par la valeur idéale dans cette ligne. Par exemple, si vous souhaitez 8 M, saisissez 8192.
3. Système chinois, patch anglais installé d'IIS
Après inspection, il a été constaté que l'hôte utilisé par le client était la version chinoise de Windows 2003, puis remplacé par l'espace de la version anglaise de Windows, et quelque chose s'est mal passé.
Généralement, le même problème se produit parfois après que le système a mis à niveau IIS ou appliqué un correctif. Il suffit d'ajouter un morceau de code avant le fichier ASP.
<!-- doit être la première ligne en ASP -->
<% @LCID=4100 %>
4.Problème de langue
Définissez les paramètres régionaux dans le panneau de configuration sur [Chine]
5. Problèmes de date et d'heure
Dans le panneau de configuration, accédez aux options régionales et linguistiques. Dans les options régionales, définissez le format de l'heure sur : H:mm:ss et modifiez le fuseau horaire en Pékin dans la zone "Date et heure" du panneau de configuration (. La raison pour laquelle j'ai changé cela est parce que certaines pièces jointes portent le nom de l'heure. Si le format de l'heure est incorrect, le programme signalera une erreur.)
6. Nom chinois ou chemin utilisé pour les fichiers téléchargés
Si vous utilisez le téléchargement sans composant ASP, car le chinois n'est pas pris en charge, vous devez vérifier si le chemin de téléchargement contient du chinois.
7. "Erreur d'exécution Microsoft VBScript '800a0005' Appel de procédure ou paramètre non valide : 'chr'" est signalée (le mien appartient à ce type de problème)
Erreur d'exécution Microsoft VBScript '800a0005' Appel de procédure ou argument non valide : 'Chr' /admin/inc/UPLOAD.INC,
Ligne 75 Une telle erreur peut se produire car le serveur utilise la version anglaise, car la fonction Chr renvoie une chaîne qui contient des caractères liés au code de caractère spécifié.
Syntaxe associée : Chr(charcode) Le paramètre charcode nécessaire est un Long utilisé pour identifier un certain caractère. Remarque : Les nombres compris entre 0 et 31 sont les mêmes que les codes ASCII standard non imprimables.
Par exemple, Chr(10) renvoie le caractère de nouvelle ligne. La plage normale de charcode est de 0 à 255. Cependant, sur les systèmes DBCS, la plage réelle du charcode est comprise entre -32 768 et 65 535. Remarque : La fonction ChrB fonctionne sur les données d'octets contenues dans une chaîne. ChrB renvoie toujours un seul octet, plutôt que de renvoyer un caractère, qui peut contenir un ou deux octets. La fonction ChrW renvoie une chaîne contenant Unicode. Sur les plateformes qui ne prennent pas en charge Unicode, sa fonctionnalité est la même que la fonction Chr.
Il suffit donc de remplacer le chr dans la ligne d'erreur 75 du code : stemp=stemp&chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c))) par chrw.