La pièce jointe Asp ne peut pas être téléchargée ou l'erreur d'exécution Microsoft VBScript '800a0005' est signalée. Appel de procédure ou paramètre invalide : solution 'chr'. Hier, j'ai refait le système sur le serveur de l'entreprise. Lorsque j'ai constaté que la pièce jointe Asp ne pouvait pas être téléchargée, cela a bien fonctionné sur le serveur précédent. Oui, cela ne fonctionne pas correctement après l'avoir refait, alors je l'ai recherché sur Google et baidu, et voici la solution pour aider les amis qui rencontrent ce problème à éviter les détours :
1. Problème d'autorisation
Veuillez vous assurer que l'utilisateur invité dans le dossier du fichier que vous téléchargez 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 date et l'heure du panneau de configuration (La raison pour laquelle je. Cela a changé car certaines pièces jointes téléchargées sont nommées avec 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' signalée Appel de procédure ou paramètre non valide : erreur 'chr' (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 identiques aux 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.