Der Asp-Anhang kann nicht hochgeladen werden oder es wird ein Microsoft VBScript-Laufzeitfehlerfehler „800a0005“ gemeldet. Ungültiger Prozeduraufruf oder Parameter: „chr“.
Gestern habe ich das System auf dem Server des Unternehmens neu erstellt, aber ich bin auf ein Problem gestoßen, bei dem Asp-Anhänge nicht auf dem Server hochgeladen werden konnten, aber nach der Neuinstallation funktionierte es nicht mehr richtig. Also habe ich gegoogelt und Baidu verwendet Ich sende Ihnen die folgende Lösung, um mir zu helfen, wenn ich auf dieses Problem stoße. Freunde mit Problemen sollten Umwege vermeiden:
1.Berechtigungsproblem
Bitte stellen Sie sicher, dass der Ordner „Gastbenutzer“, in den Sie die Datei hochladen, über Schreibrechte verfügt. Einige Dateien werden in der Datenbank gespeichert und müssen auch über Änderungsrechte verfügen.
2. Dateigrößenbeschränkung
Aus Sicherheitsgründen hat IIS 6 eine standardmäßige maximale Anforderung von 200 KB (d. h. das maximale Limit für übermittelte Daten beträgt 200 KByte, 204800 Byte).
Lösung:Schließen Sie den IIS-Administratordienst
Öffnen Sie /Windows/system32/inesrv/metabase.xml
Ändern Sie den Wert von ASPMaxRequestEntityAllowed entsprechend Ihren Anforderungen. Der Standardwert ist 204800
Starten Sie den IIS-Verwaltungsdienst
Nach der Änderung müssen Sie auch die Datei machine.config ändern
In Asp.net beträgt die Standardgröße der hochgeladenen Dateien 4096 KB, also 4 MB, Sie können diese Daten jedoch in Web.config ändern. Normalerweise besteht die gebräuchlichere Methode darin, die Datei machine.config im Verzeichnis C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/CONFIG direkt zu ändern (die Framework-Version ist unterschiedlich, geben Sie also das Verzeichnis ein, in dem Sie die Version verwenden). ). Suchen Sie httpruntime und ändern Sie den Wert von maxRequestLength in diese Zeile. Wenn Sie beispielsweise 8M wünschen, geben Sie 8192 ein.
3. Chinesisches System, installierter englischer Patch von IIS
Bei der Überprüfung wurde festgestellt, dass der vom Kunden verwendete Host die chinesische Version von Windows 2003 war und später auf die englische Version von Windows umgestellt wurde, und es kam zu einem Fehler.
Im Allgemeinen tritt das gleiche Problem manchmal auf, nachdem das System IIS aktualisiert oder einen Patch angewendet hat. Wir müssen nur einen Code vor der ASP-Datei hinzufügen.
<!-- muss die erste Zeile in ASP sein -->
<% @LCID=4100 %>
4. Sprachproblem
Stellen Sie die regionalen Einstellungen in der Systemsteuerung auf [China] ein.
5. Probleme mit Datum und Uhrzeit
Gehen Sie in der Systemsteuerung zu den Regions- und Sprachoptionen. Stellen Sie das Zeitformat auf: H:mm:ss ein und ändern Sie die Zeitzone in „Datum und Uhrzeit“ der Systemsteuerung. Der Grund, warum ich dies geändert habe, liegt darin, dass einige Anhänge nach der Zeit benannt sind. Wenn das Zeitformat falsch ist, meldet das Programm einen Fehler.
6. Chinesischer Name oder Pfad, der für hochgeladene Dateien verwendet wird
Wenn Sie den komponentenlosen ASP-Upload verwenden, müssen Sie prüfen, ob der Upload-Pfad Chinesisch enthält, da Chinesisch nicht unterstützt wird.
7. Der Fehler „Microsoft VBScript-Laufzeitfehler ‚800a0005‘ Ungültiger Prozeduraufruf oder Parameter: ‚chr‘“ wird gemeldet (meiner gehört zu dieser Art von Problem)
Microsoft VBScript-Laufzeitfehler „800a0005“ Ungültiger Prozeduraufruf oder Argument: „Chr“ /admin/inc/UPLOAD.INC,
Zeile 75 Ein solcher Fehler kann auftreten, weil der Server die englische Version verwendet, da die Chr-Funktion einen String zurückgibt, der Zeichen enthält, die sich auf den angegebenen Zeichencode beziehen.
Zugehörige Syntax: Chr(charcode) Der erforderliche Charcode-Parameter ist ein Long-Wert, der zur Identifizierung eines bestimmten Zeichens verwendet wird. Hinweis: Zahlen zwischen 0 und 31 entsprechen standardmäßigen nicht druckbaren ASCII-Codes.
Beispielsweise gibt Chr(10) das Newline-Zeichen zurück. Der normale Zeichencodebereich liegt zwischen 0 und 255. Auf DBCS-Systemen liegt der tatsächliche Bereich des Zeichencodes jedoch zwischen -32768 und 65535. Hinweis: Die ChrB-Funktion arbeitet mit Bytedaten, die in einem String enthalten sind. ChrB gibt immer ein einzelnes Byte zurück und nicht ein Zeichen, das aus einem oder zwei Bytes bestehen kann. Die ChrW-Funktion gibt einen String zurück, der Unicode enthält. Auf Plattformen, die Unicode nicht unterstützen, ist ihre Funktionalität dieselbe wie die Chr-Funktion.
Ersetzen Sie also einfach chr in der Codezeile Fehlerzeile 75: stemp=stemp&chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c))) durch chrw.