Asp 첨부 파일을 업로드할 수 없거나 Microsoft VBScript 런타임 오류 '800a0005'가 보고되었습니다. 잘못된 프로시저 호출 또는 매개 변수 'chr'.
어제 회사 서버에서 시스템을 다시 만들었는데 Asp 첨부파일이 업로드되지 않는 문제가 발생했습니다. 이전 서버에서는 잘 작동했는데 다시 실행해보니 제대로 작동하지 않더군요. 문제가 있는 친구는 우회하는 것을 피해야 합니다.
1.권한 문제
파일을 업로드하는 "guest user" 폴더에 쓰기 권한이 있는지 확인하십시오. 일부 파일은 데이터베이스에 저장되며 수정 권한도 있어야 합니다.
2. 파일 크기 제한
보안상의 이유로 IIS 6의 기본 최대 요청 수는 200K입니다(즉, 제출된 최대 데이터 제한은 200KByte, 204800Byte입니다).
해결책:IIS 관리 서비스 서비스를 닫습니다.
/Windows/system32/inesrv/metabase.xml을 엽니다.
ASPMaxRequestEntityAllowed 값을 필요한 값으로 수정합니다. 기본값은 204800입니다.
IIS 관리 서비스 시작
수정 후에는 machine.config 파일도 수정해야 합니다.
Asp.net에서 업로드된 파일의 기본 크기는 4096KB(4M)이지만 Web.config에서 이 데이터를 변경할 수 있습니다. 일반적으로 더 일반적인 방법은 C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/CONFIG 디렉터리에서 machine.config 파일을 직접 수정하는 것입니다(Framework 버전은 다르므로 사용하는 버전의 디렉터리를 입력하세요). ) httpruntime을 찾아 이 줄에서 maxRequestLength 값을 이상적인 값으로 변경합니다. 예를 들어 8M을 원하면 8192를 입력합니다.
3. 중국 시스템, IIS 영문 패치 설치
점검 결과 고객님께서 사용하신 호스트는 중국어 버전의 Windows 2003이었는데, 나중에 영어 버전의 Windows 공간으로 변경되어 뭔가 문제가 있는 것으로 확인되었습니다.
일반적으로 시스템이 IIS를 업그레이드하거나 패치를 적용한 후에도 동일한 문제가 발생하는 경우가 있습니다. ASP 파일 앞에 코드 조각만 추가하면 됩니다.
<!-- ASP의 첫 번째 줄이어야 합니다 -->
<% @LCID=4100 %>
4.언어 문제
제어판에서 지역 설정을 [중국]으로 설정하세요.
5. 날짜 및 시간 문제
제어판에서 지역 및 언어 옵션으로 이동하여 시간 형식을 H:mm:ss로 설정하고 제어판의 "날짜 및 시간"에서 시간대를 베이징으로 변경합니다. 이렇게 변경한 이유는 일부 첨부 파일이 시간을 따서 명명되었기 때문입니다. 시간 형식이 잘못되면 프로그램에서 오류를 보고하게 됩니다.
6. 업로드된 파일에 사용되는 중국어 이름 또는 경로
ASP 컴포넌트 없는 업로드를 사용하는 경우 중국어는 지원되지 않으므로 업로드 경로에 중국어가 포함되어 있는지 확인해야 합니다.
7. "Microsoft VBScript 런타임 오류 오류 '800a0005' 잘못된 프로시저 호출 또는 매개변수: 'chr'" 오류가 보고되었습니다(내 것이 이런 종류의 문제에 속함)
Microsoft VBScript 런타임 오류 '800a0005' 잘못된 프로시저 호출 또는 인수: 'Chr' /admin/inc/UPLOAD.INC,
75행 이러한 오류는 서버가 영어 버전을 사용하고 있기 때문에 발생할 수 있습니다. Chr 함수는 지정된 문자 코드와 관련된 문자가 포함된 String을 반환하기 때문입니다.
관련 구문: Chr(charcode) 필수 charcode 매개변수는 특정 문자를 식별하는 데 사용되는 Long입니다. 참고: 0에서 31 사이의 숫자는 표준 비인쇄 ASCII 코드와 동일합니다.
예를 들어 Chr(10)은 개행 문자를 반환합니다. charcode의 일반적인 범위는 0 – 255입니다. 그러나 DBCS 시스템에서 실제 문자 코드 범위는 -32768에서 65535입니다. 참고: ChrB 함수는 문자열에 포함된 바이트 데이터에 대해 작동합니다. ChrB는 1바이트 또는 2바이트일 수 있는 문자를 반환하는 대신 항상 단일 바이트를 반환합니다. ChrW 함수는 유니코드를 포함하는 문자열을 반환합니다. 유니코드를 지원하지 않는 플랫폼에서는 해당 기능이 Chr 함수와 동일합니다.
따라서 오류 줄 75 코드 줄의 chr을 다음과 같이 바꾸십시오. 줄기p=stemp&chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c)))를 chrw로 바꾸십시오.