게시판 본문 Active Directory Service Interface - Read Only

re: iis에 mime타입추가..
작성자: 송원석
작성일시: 2003-04-23 22:28,  조회수: 3,944
안녕하세요? 송원석 입니다. ^_^

물론 질문하신 MIME Type 매핑은 ADSI 로 처리가 가능합니다. 다만 한 가지 우려되는 점은 인스톨쉴드 작업중 웹 루트와 관련되는 부분을 Registry 로 처리하셨다고 한 말씀을 미루어 짐작해 볼 때, 나그네님께서 ADSI 에 대해서 그다지 친숙하지가 않으시다면 제 얘기가 조금 난해하게 느껴지실 수도 있어서 그것이 걱정입니다... ^_^;;;

일단 Sample 코드를 ASP 로 작성해 보았습니다. 참고하시면 다소나마 도움이 되실 것이라고 생각합니다. 아래의 링크를 클릭하시면 다운로드를 받으실 수 있습니다.

IISMimeType_ASP.zip (2k)

대부분 주석으로 설명 처리가 되었습니다만, 몇 가지만 추가로 간단하게 말씀드리고자 합니다.

우선 위의 Sample 코드가 처리하는 작업은 매우 간단합니다. IIS 의 가상 웹 서버에 현재 설정된 MIME Type 의 목록을 보여주고 무조건 임의의 MIME Type 을 일련 번호를 붙여서 하나 추가합니다. Sample 코드를 설치하시고 계속 새로고침을 해보시면 무슨 말인지 쉽게 이해가 가실 거라고 생각합니다. ^_^

먼저 다음의 코드는 사용자로 하여금 강제로 Windows NT 인증을 하게 하는 코드입니다. 따라서 인스톨쉴드로 작업하실 때는 필요가 없는 코드죠. 이 코드를 추가한 이유는 일반적인 웹 엑세스 권한으로는 IIS 의 Metabase 를 편집할 수 없기 때문입니다. 결론은... 무시하시면 됩니다. ^_^;;;
If Request.ServerVariables("LOGON_USER") = "" Then
    Response.Status = "401 Authorization Required"
    Response.End
End If
다음의 코드는 MIME Type 을 추가하고자 하는 가상 웹 서버의 ADSI 개체를 얻는 부분입니다. 이때 IIS://LocalHost/W3SVC/1/ROOT 라는 ADsPath 가 사용되는데, 이 ADsPath 의 의미를 모르신다면 제가 이 자리에서 설명드리기는 조금 곤란합니다. ^_^;; 분량도 상당할 뿐더러 이미 제가 여러차례 말씀드린 내용이므로 ADsPath 에 관해서는 제가 예전에 Taeyo 님 사이트에 올렸던 ADSI 강좌를 읽어보시기를 권해드립니다.
Set objWebServer = GetObject("IIS://LocalHost/W3SVC/1/ROOT")
aryMimeMap = objWebServer.MimeMap
여기에 사용된 ADsPath 를 간단하게나마 설명드리고 넘어가자면 작업을 하고자 하는 가상 웹 서버의 경로를 나타내는 것입니다. 즉 위에 사용된 ADsPath 는 작업하고자 하는 대상이 현재 Local Computer 에 설치된 WWW 서비스중에서 1 번 가상 웹 서버의 Root 디렉터리라는 의미가 됩니다.

가상 웹 서버에 1 번, 2 번 하고 번호가 붙는 이유는 Windows Server 제품군상의 IIS 에는 하나의 IIS 에 여러개의 가상 웹 서버가 동시에 존재할 수 있기 때문입니다. 이에 관한 자세한 내용은 역시 제 ADSI 강좌를 참고하시기 바랍니다.

그 다음줄의 aryMimeMap = objWebServer.MimeMap 라인이 바로 MIME Type 의 정보를 얻어오는 부분입니다. MimeMap 속성은 MimeMap 개체들의 배열을 리턴해주는데, 바로 이 MimeMap 개체 하나하나가 각각 가상 웹 서버에 설정된 MIME Type 과 매칭이 되는 것입니다.

따라서 aryMimeMap 배열을 For 문등으로 루프를 돌면서 현재 설정된 MIME Type 의 정보를 볼 수 있습니다. 제 Sample 코드상에서는 다음이 이 부분에 해당합니다.
<%= aryMimeMap(i).Extension %>
<%= aryMimeMap(i).MimeType %>
단순히 MIME Type 의 정보를 보시기만 하려면 이처럼 aryMimeMap 배열을 루프로 돌리시기만 하면 됩니다.

이제 새로운 MIME Type 을 설정하는 부분을 살펴보도록 하겠습니다.
Set objMimeMapEntry = CreateObject("MimeMap")
objMimeMapEntry.Extension = ".EC" & Right("0" & iCnt, 2)
objMimeMapEntry.MimeType = "EGOCUBE/SAMPLE-MIME-" & Right("0" & iCnt, 2)
새로운 MIME Type 을 설정하기 위해서 우선 새 MimeMap 개체를 만들어야 합니다. 그리고 이렇게 만들어진 MimeMap 개체의 Extension 속성과 MimeType 속성에 새로 설정하고자 하는 MIME Type 의 확장자 정보와 Mime Type 정보를 설정합니다.

그런데 MimeMap 개체는 우선 MimeMap 개체의 배열에 들어가야만 하므로 처음에 구했던 aryMimeMap 배열의 크기를 하나 늘이고 새로 만든 MimeMap 개체를 배열의 맨 마지막 인덱스에 추가합니다.
Redim Preserve aryMimeMap(iCnt)
Set aryMimeMap(UBound(aryMimeMap)) = objMimeMapEntry
이제 마지막으로 aryMimeMap 배열을 다시 원래의 objWebServer.MimeMap 속성에 설정하고, 지금까지의 작업을 저장하기 위해서 objWebServer.SetInfo 메소드를 호출하면 작업이 모두 끝납니다.
objWebServer.MimeMap = aryMimeMap
objWebServer.SetInfo
이렇게 설명을 읽어보시면 다소 복잡하게 느껴지실지도 모르겠지만 실제로 코드를 보면 그다지 어려운 부분은 없으니 참고하시고, 또 궁금한 점이 있으시면 글을 남겨주시기 바랍니다.

감사합니다.
IP 주소: 165.21.154.14
전체 421 건의 게시물, 17 페이지로 구성된 Active Directory Service Interface 게시판의 17 페이지입니다.
게시물
21

re: 해결했습니다..감사합니다 !!!!!

김종일

2003-07-03 5,557
20

(__) 또..

왕초보

2003-07-01 3,569
19

re: (__) 또..

송원석

2003-07-01 3,228
18

헤헤..또 왔어요

왕초보

2003-06-30 3,166
17

re: 헤헤..또 왔어요 [1]

송원석

2003-06-30 7,141
16

안녕하세요

왕초보

2003-06-26 3,096
15

re: 안녕하세요

송원석

2003-06-26 3,206
14

adsi 하던중에 궁금한점이랑 안되는게 있어요

왕초보

2003-06-19 3,293
13

re: adsi 하던중에 궁금한점이랑 안되는게 있어요

송원석

2003-06-19 3,501
12

re: adsi 하던중에 궁금한점이랑 안되는게 있어요 [1]

왕초보

2003-06-19 3,160
11

[질문]ADSI 강좌중에 권한설정에 대한 부분질문입니다.

초보

2003-05-29 966
10

re: [질문]ADSI 강좌중에 권한설정에 대한 부분질문입니다.

송원석

2003-05-29 3,248
9

안녕하세요 나그네입니다. 다시 궁금한게 있어서요..질문.

나그네.

2003-05-09 3,355
8

re: 안녕하세요 나그네입니다. 다시 궁금한게 있어서요..질문.

송원석

2003-05-09 3,520
7

re: 감사드립니다.~

나그네.

2003-05-10 3,409
6

iis에 mime타입추가..

나그네.

2003-04-23 3,543

re: iis에 mime타입추가..

송원석

2003-04-23 3,944
4

re: iis에 mime타입추가.. [4]

나그네.

2003-04-24 4,051
3

WMI Scripting 기술 관련 추천 문서

송원석

2003-03-26 3,908
2

re: WMI Scripting 기술 관련 추천 문서 [2]

멍멍이

2003-04-15 3,704
1

ADSI (Active Directory Service Interface) Forum 을 시작합니다.

송원석

2003-02-22 3,537