권장 : ASP 응용 프로그램의 고급 ASP 오류 오브젝트에 대한 지식 vbscript에는 스크립트 통역사가 런타임 오류를 무시하고 스크립트 코드의 실행을 계속하는 onerrorresumenext 문이 있습니다. 그런 다음 스크립트는 err.number 속성의 값을 확인하여 오류가 발생했는지 확인할 수 있습니다. 오류가 발생하면 0이 아닌 값이 반환됩니다
4.2.3 서버 측면 포함 지침의 예
이 섹션에서는 다양한 서버 측문이 포함 된 문을 실험하는 데 사용할 수있는 일부 샘플 페이지를 제공합니다. SSI 지시문 및 ASP 서버 객체 홈페이지를 표시하는 샘플 웹 페이지의 하위 디렉토리를 열어 (예 : 서브 디렉토리 챕터 04).
이 책의 모든 예는 웹 사이트에서 다운로드 할 수 있습니다. 독자는이 장의 나머지 부분에 대한 모든 샘플 페이지를 04 장에서 예제 서브 디렉토리로 찾을 수 있습니다.
1. SSI/CGI를 사용하여 지침을 처리하십시오
링크를 클릭하여 SSI_CGI.STM 페이지를 엽니 다. 이 페이지의 파일 확장자는 .stm이므로 ASP 웹 페이지가 아님을 나타냅니다. 이 페이지는 #Exec 명령 (나중에 볼 수있는)을 제외한 모든 SSI 지침을 사용하고 그림 4-4와 같이 지침의 사용 방법과 결과를 표시합니다.
그림 4-4 SSI/CGI 처리 지침 예제 웹 페이지에 표시됩니다.
(1) #include 명령
페이지의 시작에는 SSI가있는 파일이 포함되며 Intro.Inc라는 별도의 다른 파일의 내용을 표시합니다. 파일의 전체 내용은 다음과 같습니다.
웹 페이지에 각도 브래킷을 표시하려면 html entries <and>를 사용해야합니다. 그들이 끝나지 않으면, 주석 요소의 일부로 취급 될 수 없으며 그 안에 지침을 실행하게합니다.
기본 ssi_cgi.stm 페이지 에서이 파일을 페이지에 삽입하는 코드는 매우 간단합니다.
<!-#include file = intro.inc->
(2) #config, #fsize 및 #flastmod 지침
페이지의 다음 부분은 페이지와 동일한 디렉토리에 파일 기본값의 크기와 마지막으로 수정 된 시간을 보여줍니다. #config 지시문은 여기서 세 번 사용되었습니다.
· 한 번은 SSI 오류 메시지 세트입니다.
· 한 번은 날짜와 시간의 형식입니다.
· 일단 파일 크기 계산 형식을 설정하면.
#FSIZE 및 #FIASTMOD 지시문을 사용하여 웹 페이지에 값을 삽입하십시오.
<p> <div class = subhead> ssi 문 </div>
<!-#config errmsg = ssi 처리 오류->
(SSI 오류의 경우 오류 메시지를 설정합니다) <br>
<!-#config errmsg = ssi 처리 오류-> <p>
파일의 세부 사항 'default.asp': <br>
<!-#config sizefmt = 바이트->
(바이트 크기로 fsize를 설정) <br>
<!-#config sizefmt = 바이트->
<!-#fsize file = default.asp->
반환 : <b> <!-#fsize file = default.asp-> 바이트 </b> <br>
<!-#config timefmt = %a, %b %d %y %h : %m : %s->
(날짜/시간 결과를위한 형식을 설정) <br>
<!-#config timefmt = %a, %b %d %y %h : %m : %s->
<!-#FlastMod 파일 = Default.asp->
반환 : <b> <!-#FlastMod 파일 = default.asp-> </b> <p>
(3) #echo 명령
페이지의 마지막 부분 (화면에서 부분 만 볼 수 있음)은 #ECHO 지시문을 사용하여 액세스 할 수있는 모든 HTTP 헤더의 내용을 보여줍니다. VAR 속성 값이 변경된다는 점을 제외하고 각 줄의 코드는 동일합니다. VAR 속성에 대한 모든 허용 값의 전체 목록은 부록 G에 나와 있습니다.
<div class = subhead> http 변수 </div>
<!-#echo var = auth_type->
반환 : <b> <!-#echo var = auth_type-> </b> <br>
<!-#echo var = auth_password->
반환 : <b> <!-#echo var = auth_password-> </b> <br>
… 등…
2. #Exec Directive를 사용하십시오
#Exec 지시문은 다른 SSI 지시문보다 사용하기가 더 어렵 기 때문에 다른 페이지에 독립적으로 배치됩니다. 시작 페이지는 ASP 서버 객체 및 SSI Directrives 기본 메뉴에서 액세스 할 수 있습니다.
이 페이지에서 #ECHO 서버 포함 지시문 링크 사용을 선택하십시오. 이 작업은 SSI #Exec Directive 페이지를 열어줍니다
SSI #Exec Directive 웹 페이지
ASP 웹 페이지 SSI_EXEC.ASP입니다. #Exec Directive에 설명 된 조치를 수행하는 .stm 페이지를 열는 데 두 개의 버튼이 사용됩니다.
(1)이 예제를 서버에서 실행하십시오
SSI #Exec Directive 예제가 서버에서 작동하기 전에 일부 구성을 수정해야합니다. 먼저, 웹 서버 레지스트리에서 키 이름 아래의 ssiienablecmddirective 항목 (유형 dword)을 만들어야합니다.
hkey_local_machine/system/currentcontrolset/services/w3SVC/매개 변수
그런 다음 값을 1로 설정하십시오
이를 통해 #Exec Directive는 CMD 속성과 함께 사용할 수 있습니다.
둘째, #Exec Directive를 사용하는 .stm 파일을 포함하는 디렉토리에 대해 익명 액세스를 금지해야합니다. 고객은 계정에 대한 세부 정보를 제공해야하며, 이는 관리자 수준 권한이있는 계정이어야합니다. 이것은 또한 Net 명령이 정상적으로 작동 해야하는 요구 사항이기도합니다.
인터넷 서비스 관리자 애플리케이션을 활성화하고 #Exec Directive를 사용하여 .stm 파일이 포함 된 디렉토리를 선택하십시오 (예에서는이 파일은 EXEC 디렉토리의 start_cisvc.stm 및 stop_cisvc.stm입니다). 그런 다음 해당 디렉토리의 속성 대화 상자를 엽니 다. 디렉토리 보안 탭에서 익명 액세스 및 인증 제어 영역에서 편집 버튼을 클릭하여 인증 메소드를 엽니 다 대화 상자
이 대화 상자에서 익명 액세스 확인란이 선택되지 않았습니다. Internet Explorer를 사용하여 페이지에 액세스하지 않으면 기본 인증 옵션을 열어 사용자 이름/비밀번호를 제출하여 Nonie 브라우저가 페이지에 액세스 할 수 있도록합니다. 설정할 때 보안에 대한 경고가 나타나면 예를 클릭하십시오. 페이지에 익명으로 액세스 할 수 없으므로 브라우저는 이제 적절한 계정 및 신원 인증서를 표시해야합니다.
서비스 시작 및 종료 결과를보기 위해 서비스 MMC 플러그인을 열고 인덱싱 서비스를 종료하십시오.
(2) 인덱싱 서비스를 시작하고 종료합니다
샘플 웹 페이지의 버튼을 클릭하여 Microsoft Indexing 서비스를 시작하십시오.
이 서비스의 짧은 이름은 일반적으로 Microsoft Index Server라고하는 CISVC이며 이름의 CI 문자는 실제로 컨텐츠 인덱서를 나타냅니다.
프롬프트되면 웹 서버의 관리자 권한이있는 계정의 사용자 이름과 비밀번호를 입력하십시오. 페이지 (start_cisvc.stm)가 열리면 #Exec Directive가 Window Command Interpreter (cmd.exe)의 인스턴스를로드 한 다음 Net Start 명령을 실행하므로 특정 지연이 느껴집니다. 서비스가 시작되면 (또는 이미 실행중인 경우) 나머지 페이지가 표시됩니다.
사용자 이름과 비밀번호를 입력 한 후 표시된 인터페이스
이 페이지의 코드는 매우 간단합니다. #Exec Directive에는 CMD 속성이 있으며 CMD.exe /C Net Start CISVC로 설정됩니다. 양식에는 이전 페이지로 돌아갈 제출 버튼이 포함되어 있습니다.
<p> SSI 지침 처리 : </p>
<p> <b> <!-#exec cmd = cmd.exe/c net stop cisvc-> </b> </p>
<!-#exec cmd = cmd.exe /c net stop cisvc->
<양식 액션 = ../ssi_exec.asp>
<입력 유형 = 제출 이름 = cmdok 값 =>
이전 페이지 <p>로 돌아갑니다
</form>
STOP_CISVC.STM과 같은 이전 페이지에서 다른 .Stm 웹 페이지를 열면 서비스를 다시 종료 할 수 있습니다. 유일한 차이점은 Net Start 명령 대신 Net STOP 명령이 사용된다는 것입니다.
…
<!-#exec cmd = cmd.exe /c net stop cisvc->
…
공유 : 예제 ASP에서 설정된 단절 기록을 사용하는 방법을 설명합니다. 데이터베이스 프로그래밍에 ASP의 내장 ADO 구성 요소를 사용하면 일반적으로 스크립트 시작시 연결을 열고 스크립트 끝에서 닫지 만 더 큰 스크립트의 경우 대부분의 경우 개방 해야하는 것보다 훨씬 더 오래 열립니다. 그러므로