기본적으로는 IIS와 파일서버가 별도로 되어 있는 경우에 IIS에서 파일서버를 연결하기 위해서 사용하는 방법인데 이를 사용하면 다른 경우에도 타 서버에 IIS에서 엑세스하는 방법으로 사용할 수 있다. 여기서는 편의상 두 서버를 웹서버와 파일서버로 구분하도록 하겠다.
일단 내가 처음에 생각했던 웹서버에서 네트워크드라이브로 파일서버를 잡고 IIS에서 이 폴더를 가상디렉토리로 잡는 방법으로는 엑세스 하는게 불가능하다.
이 방법의 문서는 MS문서에 나와있는듯하고(현재 링크가 바뀐것 같은데 못찾겠다.) 같은 문서가 인터넷상에 많이 돌아다니긴 하고 그거 보고하면 그리 어렵진 않은데 일단 나중에 하기 쉽게 좀더 정리를 했다.
IIS가 있는 서버에서 사용자를 추가한다. [관리도구] - [컴퓨터관리]에 로컬사용자 빛 그룹에서 추가할 수 있다. 머 이름은 맘대로 해도 되지만 옵션은 화면처럼 "암호 변경할 수 없음"과 "암호 사용기간 제한 없음"에만 선택해 준다.
위에서 만든 계정의 소속그룹에서 기본적으로 추가 되어 있는 Users그룹을 삭제하고 Guests그룹을 추가한다.
[관리도구] - [로컬 보안 정책]에서 로컬 로그온에 위에서 만은 newuser사용자를 추가해 준다.
이렇게 사용자를 추가하는 과정을 파일서버에서도 동일하게 해준다. 여기서 이 방법을 약간 설명하자면 양쪽에 똑같은 사용자를 만들고 권한을 준다음에 접근을 하면 접근당한쪽에서는 자신의 로컬에 같은 계정이 존재하기 때문에 IIS상에서도 접근이 되도록 한 것이다.(불가능 한 것은 약간의 편법을 써서 가능하게 한 느낌이다.. ㅎ)
이제 웹서버의 IIS로 가 보자.
사용하고자 하는 웹사이트의 설정에 들아가서 디렉토리 보안에 익명엑세스 계정에 위에서 만든 newuser계정을 추가해주고 비밀번호를 입력해 준다. 이때 "IIS에서 암호를 제어할 수 있음"은 체크를 풀어준다.(체크되어 있으면 암호를 입력할 수 없다.)
이번엔 파일서버 쪽으로 가보자.
접근하고자 하는 폴더의 속성에 들어가서 공유설정을 해주고 newuser사용자를 추가해 준 후에 "변경"과 "읽기"권한을 허용해 준다.
그리고 보안탭에 가서 동일하게 newuser를 추가해 주고 여기서는 "수정", "읽기", "쓰기"권한을 허용해 준다.
이렇게 하면 준비는 모두 끝이 났다.
이게 UNC형식으로 해당폴더에 접근할 수 있다. \\파일서버명\공유폴더명\의 형식으로....
덧) 이미 사용중인 서버였기 때문에 나같은 경우에는 이렇게 했을 때 파일서버 연결을 잘 되었지만 기존의 IIS가 로컬폴더에 대해서 권한을 제대로 얻지 못하는 문제가 생겼었는데 newuser를 만드는 대신에 IIS의 인터넷 계정인 "IUSR_컴퓨터이름"계정을 똑같이 주면서 이 계정을 사용해서 위에처럼 연결을 해서 해결을 했다.
수고많습니다. 비슷한 상황이기에 똑같이 해봤는데 IIS서버쪽에서 화일서버쪽의 지정한화일은 억세되고 있지만, IIS서버에 상응대는 클라이언트에서는 억세스가 되고 있지않은데 어떤 다른것이 있는지요.
다만, 화일서버쪽의 디렉토리 구조를 예를 들어보면,
드라이브 : D
디렉토리 : aaa\bbb
즉, 화일서버의 d:\aaa\bbb란 디렉토리를 위의 설명대로 공유를 시켜놓고, 웹서버에서 네트워드라이브로 X: 로 잡은 상태입니다.
웹서버에서 억세스하기를 즉, 해당폴더에 접근은 그냥 로컬접근하듯이 X:\filea.wav 이런식으로 했습니다.
혹시나, \\화일서버명\공유폴더명\의 형식으로 써있습니다만, 이렇케하지를 않아서 그런것인지요 ?
알려주신대로 한다면, 서버명이 SRV1이라고 하면, \\SRV1\X:\filea.wav 라는 형식으로 해야 되는지요 ?
아니면 서버명에 IP어드레스를 기입해도 되는지요 ?
한번 문의 드리오니 잘좀 부탁합니다.
=======================================================
아! ASP프로그램에서 화일서버의 특정화일을 억세스시, \\화일서버명\공유폴더명\ 이런 형식으로도 해봤는데, 역시 IIS웹서버에서는 화일서버의 특정화일을 억세스하나, IIS웹서버에 상응하는 클라이언트에서는 억세스가 되지를 않습니다.
좀더 자세히 설명드리자면 다음과 같습니다.
<p><object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715">
<param name=FileName value= <%=tmpDir%><%=tmpFile%> >
<param name="AutoStart" value="true">
<param name="ShowTracker" value="true">
<param name="ShowControls" value="true">
<param name="ShowGotoBar" value="true">
<param name="ShowDisplay" value="true">
<param name="ShowStatusBar" value="true">
<param name="AutoSize" value="true">
<embed src= <%=tmpDir%><%=tmpFile%> AutoStart=true ShowTracker=true ShowControls=true ShowGotoBar=true ShowDisplay=true ShowStatusBar=true AutoSize=true pluginspage=http://www.microsoft.com/windows/windowsmedia/download/></object></p>
위의 소스는 지정한 음성화일을 윈메디어플레이어로 듣게하고자 그 음성화일이 있는 위치를 위의 소스중 디렉토리는 tmpDir, 화일은 tmpFile이란 변수에 저장하여 처리코자 하고 있지요.
IIS웹서버쪽의 윈메디어플레이어는 버젼이 11이고요, 클라이언트쪽 윈메디어플레이어는 버젼이 10입니다. 혹시 버젼차이도 있는지요 ?
예 질문해주신 내용을 찬찬히 봤는데요. 포스팅이 좀 오래되었고 지금 IIS 2대를 놓고 테스트를 해볼 수도 없는 상황이라 자세한 답변은 못드릴것 같습니다. 흠...
IIS서버에서는 되는데 그 IIS붙은 클라이언트에서는 접근이 불가능하다는 말씀이시죠? 화일서버쪽으로 접근하는 권한은 IUSR_컴퓨터이름 계정이 얻지 못하는 것이 아닌가 생각합니다. IIS로 붙은 클라이언트는 IUSR_컴퓨터이름이라고 된 계정의 권한을 기본적으로 사용하게 되어 있는 것으로 알고 있는데요 덧글에 단것처럼 이 IUSR계정이 화일서버로의 접근권한을 갖지 못하면 클라이언트도 접근을 못합니다. 이문제가 아닐까 추측해 봅니다.
자세한 대답 못드려서 죄송합니다. 잘 해결되시길...