본문 바로가기

기술자료/.NET

MOSS 2007로 구성한 사이트 내 가상 디렉토리로 추가하기.

지금 MOSS 2007을 이용하여 프로젝트 관리해주는 사이트를 구축 중 입니다.
이를 구축하려다 보니, 회원 관리라는 일종의 관리자 기능이 필요했고,
MOSS 2007 내부를 뜯어 고치자니 왠지 망설여 지는 그런 상황이였습니다.
그래서 별도의 가상 디렉토리를 만들어 이 가상 디렉토리를 접근하기 위한
설정을 하려고 했습니다. 그런데 웃기는건 이 가상디렉토리를 접근하면 로그인 페이지로
가는 것이 아니라 자꾸만 접근할 수 없다는 에러만 뿜더군요.


하지만, Layouts ( 웹상에서는 _layouts) 폴더는 접근하려다가 접근을 못하면 자동적으로
로그인 페이지로 돌아오는데, 그 안의 소스를 아무리 살펴봐도, 권한 관련된 소스 부분은
없더군요. Behind 코드로 작성되었나 의심까지 했습니다.
그래도 굴하지 않고, web.config 나 기본 문서를 default.aspx로 변경해보았습니다.
그러나 마찬가지.....

왜 그럴까 하다가, 뿜는 에러를 보다가 권한을 보고 그 권한 부분을 확인해봤습니다.
두개의 사용자 및 그룹을 나열해서 보니깐, _layouts와 제가 걸어놓은 곳의 값이 조금틀리더군요. 일단, 두개를 맞추기 위해 하나 하나 비교 하는데, 그 때 유독 눈에 끌리는게 Users
였습니다.
일단 그 그룹을 추가했습니다.




이제 권한 부분에서 확인하니까 아무런 문제가 없이 동작하더군요. 권한이 없으므로 자동적으로 로그인되는 아주 매끄러운 동작이 되었습니다.

그런데, 이번에는 Application 관련 오류가 계속 나오더군요.
제가 짠 로직이 틀렸다는 것입니다. 그런데, 이 코드는 _layouts 내에서는 아무런 문제없이
동작했는데, 유독 이 가상 경로만 오면 그 난리를 치더군요.
그래서 찬찬히 코드를 살폈습니다. 혹시나 내가 절대 경로로 무언가 설정한 것은 아닌가 해서.
그러나 아무런 에러가 없었습니다.

MOSS 내에 절대 가상 디렉토리를 열지마라....
라고 했는데, 그게 맞는걸까.. 포기해야 되나... 했습니다.
그러다가, 문득 web.config 생각이 나더군요.
실제로 MOSS 내에 각종 가상 디렉토리들은 모두 Web.Config를 안고 있었습니다.
당연히 제가 만든 가상디렉토리 내에는 그런 것들은 전혀 없었고,
이 점이 차이다 싶어, _layouts 내에 있던 web.config를 낼름 복사했습니다.
깔끔하게 실행되더군요.

MOSS내에 가상디렉토리를 만들때 해야 되는 것을 정리하자면 아래와 같습니다.

1. 새로 만든 가상디렉토리의 사용권한에 Users 라는 그룹을 추가한다.

2. _layouts 내에 있는 web.config를 복사해 온다.