Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.

Visual Studio에서 만든 웹사이트 배포하기

Visual Studio 2005를 기준으로 설명한다.(왜냐하면 내가 2005를 쓰기 때문에.. 이전버전은 잘 모른다. 2005도 잘 모르지만... ㅡ..ㅡ)

VS 2005는 기본적으로 aspx등의 페이지를 만든 후에 Ctrl + F5를 눌러서 빌드를 시키면 Web Developer Web Server라는게 뜨면서 가상으로 웹서버를 구성해 주기 때문에 IIS를 설치하지 않아도 페이지를 빌드해 볼 수 있다.

다른 설정을 하지 않았을 경우 [내문서]안에 [Visual Studio 2005]라는 폴더 안에 프로젝트폴더속에 프로젝트 파일이 생기면 웹페이지들은 [WebSites]폴더안에 생성되서 가상웹서버가 이녀석을 실행시켜 주는 것인데 실제 웹페이지는 가상이 아닌 실서버에서 돌리기 위한 것이므로 개발후에는 배포를 해주어야 한다.

VS 2005에서 배포를 하려면 2가지 방법이 있다. (물론 IIS는 설치되었다는 것을 가정하에 한다.)

  • 웹 사이트 게시
  • 웹 사이트 복사

이렇게 2가지가 있다. 어느것을 선택해도 배포를 할 수 있지만 약간 둘의 차이점은 존재한다. 일단 배포하는 법을 보자...


웹사이트 게시

사용자 삽입 이미지

웹사이트 게시는 솔루션 탐색기에서 해당프로젝트의 마우스 우클릭을 하면 [웹사이트 게시]메뉴가 있다.
사용자 삽입 이미지

대상 위치에서 원하는 위치를 골라주면 된다. 오른쪽에 찾아보기를 하는 버튼을 누르면

사용자 삽입 이미지
보는 바와같이 웹서버의 루트디렉토리로 사용할 디렉토리를 파일시스템에서 직접 찾아가도 되고 IIS에서 해당 웹서버를 선택해 주어도 된다. 어느쪽을 해도 큰 차이는 없는 것 같다.(현 지식으로는.. ㅡ..ㅡ) 게시는 그 폴더에 있는 모든 파일을 지우고 게시한 파일들을 생성한다.

설정을 해주면 웹사이트게시를 하면 해당위치로 출력이 된다. 이 때 웹사이트 게시는 미리컴파일(Precompilation)을 해주기 때문에 동적컴파일 시간을 줄요 초기 응답시간을 줄일 수 있다.

※ 게시할 때 "미리 컴파일된 이 웹사이트를 업데이트를 할 수 있도록 허용"에 체크를 해주도록 하자. 그래야 수정해서 다시 게시할 수 있다. 체크가 없을 경우 aspx파일등으로 출력되지 않고 모두 dll파일로 컴파일 되어서 게시가 된다.




웹사이트 복사

사용자 삽입 이미지

웹사이트 복사는 중간쯤에 위치하고 있다.

사용자 삽입 이미지

웹사이트 복사는 게시에 비해서 좀 다른 기능들을 제공하고 있다. 기본적으로는 상위 연결에서 해당 IIS서버를 선택해서 연결하면 좌측에 현재 프로젝트의 파일들이 보이고 오른쪽엔 연결한 서버의 파일이 보이는데 내보내기를 하면 게시와 거의 동일하다.

선택적으로 파일을 복사할 수 있으며 역으로 다시 가져올 수도 있으면 동기화버튼을 통해서 바뀐 파일들만 동기화 하는 것도 가능하다.




게시 혹은 복사가 끝나면 웹서버에 파일들이 위치하기 때문에 웹브라우져에서 해당 웹서버 주소로 접근해서 파일을 볼 수가 있다. 브라우저를 일일이 띄우는게 귀찮다면 프로젝트의 서버를 설정해 주면 된다.

사용자 삽입 이미지

솔루션 탐색기의 프로젝트에서 프로젝트의 속성페이지에 들어간다.

사용자 삽입 이미지

속성에서 [시작옵션]에 들어가면 중간에 서버설정에 대한 부분이 있다. 기본 웹서버가 Visual Studio에서 제공하는 가상 웹서버이다.  사용자 지정 서버를 선택해서 URL에 IIS로 사용하는 웹서버의 주소를 적어주면 된다.

이렇게 설정해 줄 경우 VS 2005에서 Ctrl + F5를 눌러서 빌드를 하면 전처럼 가상서버가 뜨지 않고 빌드 후 지정서버의 URL로 브라우져가 뜨게 된다. (물론 이건 빌드만 하는 거기 때문에 변경내용을 적용하려면 그전에 게시든 복사든 배포를 해주어야 한다.)



※ 빌드서버를 웹사이트로 지정했을 때 웹사이트 게시도 IIS로 웹서버를 선택해 주면 게시를 할 수 없다고 나타난다. 둘다 같은 곳으로 지정해서 사용하려면 웹사이트 게시는 파일시스템에서 해당 폴더를 선택해 주면 게시와 빌더를 동시에 사용할 수 있다.
2007/07/09 15:57 2007/07/09 15:57

IIS에서 ASP.NET(aspx)만 실행안될 때

VS에서 ASP.NET 사이트를 만들고 내장서버가 아닌 IIS를 설치해서 웹사이트를 돌려보려고 할 때 ASP.NET 2.0파일인 aspx는 안돌아가고 html이나 asp파일만 돌아가는 경우가 있다. aspx를 돌릴려고 할때는 권한이 없다거나 못 찾는다거나 하여간 안된다.

사용자 삽입 이미지

이는 IIS에 닷넷프레임워크 2.0이 설치 안되어서 그렇다. 닷넷프레임워크 2.0을 설치했다고 하더라도 IIS를 닷넷프레임워크보다 나중에 설치하면 PC에는 닷넷프레임워크 2.0이 설치되었지만 IIS에는 설치가 되어 있지 않아서 발생하는 문제다.

Visual Studio Tools에서 Visual Studio 명령프롬프트에 들어간다.

사용자 삽입 이미지

VS 명령프롬프트에서 aspnet_regiis -i 명령어를 입력하면 IIS에 닷넷프레임워크 2.0을 설치한다. 설치가 완료되면 IIS에 닷넷프레임워크가 등록이 된 것이다.

Windows XP에서는 IIS가 5.1이 설치되고 Windows 2003 Server에서는 IIS 6.0이 설치된다. IIS 5.1에서는 위와같은 과정만 거쳐주면 바로 ASP.NET 2.0이 돌아가지만 IIS 6.0에서는 보안이 강화되어서 추가로 설정을 바꾸어 주어야 한다.

사용자 삽입 이미지

IIS에 들어가면 5.1과는 다르게 웹사이트 아래에 "웹 서비스 확장"이라는 항목이 있다. 여기서 사용하고자 하는 것을 "허용"해 주어야 한다. 여기서는 ASP.NET 2.0부분을 허용해 주어야 IIS에서 2.0파일인 aspx를 볼 수 있다.
2007/07/09 10:38 2007/07/09 10:38