2007년 2월 19일 월요일

Personal Web Server를 활용하자

Cassini ???
대부분은 개발자들은 ASP.NET 1.x 환경에서의 웹사이트 개발시에 기본 웹사이트의 경로를 이리저리 바꾸신 경험이 있을 겁니다.
개발환경의 운영체제가 서버버전이 아니면 IIS를 설치하셨더라도 새로운 웹사이트의 추가가 되지 않기 때문이죠.
덕분에 웹프로젝트는 대부분 가싱디렉토리를 생성하여 개발하게 되는데, 페이지, 이미지 등을 루트경로를 지정하는 경우에는 결과물을 확인하는 것이 힘들었습니다.
이러한 불편함을 해소하기 위해 저는 Cassini를 사용했습니다. 주위의 많은 개발자분들이 Cassini 자체를 모르시고, 활용하는 분들도 거의 없었습니다. Cassin를 간략히 설명하자면 IIS 없이 웹사이트를 운영할 수 있는 Personal Web Server입니다(VS.NET 2005에 ASP.NET Development Server라는 이름으로 포함되어 있습니다.) 단순히 가상디렉토리를 대체하는 수단이라면 대부분의 개발환경이 IIS를 포함하기 때문에 큰 메리트가 없다고 생각될 수 있지만, 잘 활용하면 개발시의 경로문제를 해결할 수 있는 좋은 수단이 됩니다.



Personal Web Server를 활용하자.
자 그럼 VS.NET 2005의 Personal Web Server인 ASP.NET Development Server(이하 개발웹서버)를 활용해보도록 하죠. VS.NET 2005에서 웹사이트를 생성하고 이를 실행하면 IIS에 가상디렉토리가 추가되지 않은 상태에서 웹페이지의 결과물을 확인할 수 있습니다. 하단 트레이를 보시면 새로운 아이콘이 추가되고, 아래와 같은 화면을 보실 수 있습니다.



이러한 설정이 ASP.NET 2.0의 기본설정이기 때문에 많은 분들이 동일한 환경하에서 개발하실 것 같네요. 개발웹서버는 동적으로 port를 할당하고, 경로를 아래와 같이 설정합니다.
http://localhost:4686/Web
이건 제가 원하는 바가 아닙니다. 제가 개발하는 웹응용프로그램은 독립된 웹사이트로 운영될 예정입니다. 따라서 루트경로를 사용하는 것이 여러모로 편하지만, 개발시에 위와 같은 환경이 설정된다면 개발자가 결과물을 확인하면서 개발하는 것이 좀 힘든 일이 되겠네요. 웹프로젝트에서 /Web경로를 제거하고 싶지만, 웹프로젝트 속성에서 할 수 있는 일은 port를 변경하는 일 뿐입니다.








설정을 바꿀 수 없다면 이 글을 쓰는 이유가 없겠죠? ^^ 자~ 그럼 시작해볼까요? 개발웹서버가 돌아가는 상태에서 작업관리자를 실행해서 프로세스를 확인해봤더니 WebDev.WebServer.EXE 라는 것이 있네요.





C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 경로에서 해당화일을 확인할 수 있습니다. 그럼 바탕화면에 바로가기(Shotcut)를 추가해서 한번 실행해봅시다. 인자값은 포트번호, 물리경로, 가상경로입니다.







바로가기의 속성을 열어서 대상의 내용을 인자값에 맞게 입력합니다. 인자값 중 vpath는 “/”로 설정합니다.
예) C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\WebDev.WebServer.EXE /port:4686 /path:"D:\My Solutions\isBoard2005\Web" /vpath:"/"






바로가기를 실행한 후 개발웹서버를 확인합니다. 트레이에서 개발웹서버의 상세보기를 실행하면 아래 화면을 확인할 수 있습니다. 경로가 원하는 데로 바뀌었지요? ^^






그럼 VS.NET 2005로 돌아가서 솔루션 탐색기를 통해 웹프로젝트의 Property Pages를 열어서 Start Options > Server > Use customer server를 선택하신후 Base URL을 위에서 설정한

http://localhost:4686으로 직접 지정하실 수 있습니다.






개발웹서버에 대한 바로가기를 여러 개 설정하여 개발사이트별로 관리가 더욱 편리해집니다.






어려운 내용은 아니지만, 글을 쓰는데 별다른 내용이 없어서 글로 채웠습니다 ^^; 저와 비슷한 환경에서 개발하셨던 분들에게 경로설정 하는데 도움이 되었으면 합니다. MSDN의Cutting Edge 컬럼을 살펴보시면 Personal Web Server에 대한 좀더 많은 내용을 확인하실 수 있습니다.

P.S> 위 내용은 Cassini를 이용하여 ASP.NET 1.x 개발시에도 동일하게 적용할 수 있습니다. 그림을 통해 확인할 수 있지만, Cassini와 ASP.NET Development Server는 거의 동일한 프로그램으로 생각됩니다.




댓글 없음: