Der Asp-Anhang kann nicht hochgeladen werden oder der Microsoft VBScript-Laufzeitfehler „800a0005“ wird gemeldet. Ungültiger Prozeduraufruf oder Parameter: „chr“-Lösung. Als ich feststellte, dass der Asp-Anhang nicht hochgeladen werden konnte, Auf dem vorherigen Server hat es einwandfrei funktioniert. Nachdem ich es wiederholt habe, funktioniert es nicht mehr richtig. Deshalb habe ich es gegoogelt und hier ist die Lösung, um Freunden, die auf dieses Problem stoßen, zu helfen, Umwege zu vermeiden:
1. Berechtigungsproblem
Bitte stellen Sie sicher, dass der Gastbenutzer im Ordner der von Ihnen hochgeladenen Datei über Schreibberechtigungen verfügt. Einige Dateien werden in der Datenbank gespeichert und müssen auch über Änderungsberechtigungen 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, 204.800 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 ein Fehler auftrat.
Im Allgemeinen tritt das gleiche Problem manchmal auf, nachdem das System IIS aktualisiert oder einen Patch angewendet hat. Wir müssen nur einen Codeabschnitt 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 Regional- und Sprachoptionen, stellen Sie das Zeitformat auf: H:mm:ss ein und ändern Sie die Zeitzone in Peking (Datum und Uhrzeit). Dies wurde geändert, da einige hochgeladene Anhänge mit 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. Microsoft VBScript-Laufzeitfehler „800a0005“ gemeldet. Ungültiger Prozeduraufruf oder Parameter: „chr“-Fehler (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.