Share via


ASP.NET 배포 개요

업데이트: 2007년 11월

웹 사이트를 개발한 후에는 테스트용 웹 서버(스테이징 서버) 또는 사용자가 사이트로 작업할 수 있는 서버(프로덕션 서버)에 웹 사이트를 배포할 수 있습니다. 웹 사이트를 배포하는 과정에는 해당 웹 사이트를 미리 컴파일하는 것을 비롯하여 다양한 옵션을 사용할 수 있습니다.

이 항목의 내용은 다음과 같습니다.

  • 시나리오

  • 배포 기능

  • 배경

  • 코드 예제

시나리오

Visual Studio에서 웹 사이트를 개발한 후에는 다음 배포 방식 중 하나를 선택할 수 있습니다.

  • Visual Studio의 도구를 사용하여 웹 사이트의 파일을 대상 서버에 복사합니다.

  • 사이트를 미리 컴파일하고 출력을 프로덕션 서버 같은 지정한 위치에 복사합니다.

맨 위로 이동

기능

Visual Studio에서는 웹 사이트를 배포하는 데 필요한 다음과 같은 옵션을 제공합니다.

  • 웹 사이트 복사 도구. 현재 웹 사이트를 대상 서버에 복사합니다.

  • 웹 사이트 게시 유틸리티. 웹 사이트를 실행 파일 집합으로 컴파일합니다. 그런 후 원하는 방법을 사용하여 파일을 대상 서버에 복사할 수 있습니다.

    참고:

    Microsoft Visual Web Developer Express Edition에서는 웹 사이트 게시 유틸리티를 사용할 수 없습니다.

맨 위로 이동

배경

Visual Studio 웹 사이트 복사 도구. 현재 웹 사이트의 파일을 대상 서버에 복사합니다. 또한 웹 사이트를 실행 파일 집합으로 컴파일하는 웹 사이트 게시 유틸리티도 제공합니다. 그런 후 원하는 방법을 사용하여 파일을 대상 서버에 복사합니다.

참고:

또한 웹 응용 프로그램 프로젝트를 사용하여 웹 사이트를 만들 수도 있습니다. 웹 응용 프로그램 프로젝트에서는 모든 클래스 파일이 단일 어셈블리로 컴파일됩니다. 자세한 내용은 웹 응용 프로그램 프로젝트 개요를 참조하십시오.

웹 사이트를 만든 후 대상 서버에 배포하는 것 외에 FTP(파일 전송 프로토콜) 웹 사이트도 만들 수 있습니다. 이 경우 대상 서버에서 직접 파일을 만들어 편집할 수 있으므로 호스팅된 서버에서 웹 사이트로 보다 편리하게 작업할 수 있습니다.

웹 사이트 복사 도구

웹 사이트 복사 도구는 FTP 유틸리티와 비슷합니다. 대상 서버에서 폴더를 연 후 현재 웹 사이트와 대상 웹 사이트 간에 파일을 업로드 및 다운로드할 수 있습니다. 웹 사이트 복사 도구는 양쪽 웹 사이트의 파일을 검토하여 두 사이트가 최신 버전의 파일을 보유하는지 자동으로 확인하는 동기화 기능을 지원합니다.

참고:

대상 서버가 FTP 서버이면 FTP 웹 사이트를 만들어 서버에서 파일을 열고 편집할 수 있습니다. 자세한 내용은 FTP를 통해 배포된 웹 사이트를 참조하십시오.

웹 사이트 복사 도구에서는 다음과 같은 기능을 지원합니다.

  • .aspx 파일 및 클래스 파일을 비롯한 소스 파일을 대상 서버에 복사할 수 있습니다. 이 시나리오에서 웹 페이지는 요청 시 동적으로 컴파일됩니다.

  • Visual Studio에서 지원되는 모든 종류의 웹 사이트에서 파일을 열고 복사할 수 있습니다. 여기에는 IIS(인터넷 정보 서비스), 원격 IIS 및 FTP 웹 사이트가 포함됩니다. 대상 서버에는 FrontPage Server Extensions가 필요하지 않습니다.

  • 동기화 기능에서는 양쪽 웹 사이트의 파일을 검토하여 두 사이트가 최신 버전의 파일을 보유하는지 자동으로 확인합니다.

  • 웹 사이트 복사 도구는 응용 프로그램 파일을 복사하기 전에 App_offline.htm이라는 파일을 대상 웹 사이트의 루트 디렉터리에 배치합니다. App_offline.htm 파일이 있는 동안에는 웹 사이트에 대한 모든 요청이 이 파일로 리디렉션됩니다. 파일에는 웹 사이트가 업데이트되고 있음을 클라이언트에 알려 주는 메시지가 표시됩니다. 모든 웹 사이트 파일이 복사되면 웹 사이트 복사 도구는 대상 웹 사이트에서 App_offline.htm 파일을 삭제합니다.

웹 사이트 게시 유틸리티

웹 사이트 게시 유틸리티는 웹 페이지(.aspx 파일)와 코드를 비롯하여 웹 사이트의 콘텐츠를 미리 컴파일한 다음 그런 다음 출력을 지정한 디렉터리 또는 서버 위치에 복사합니다. 게시 작업은 미리 컴파일 프로세스의 일부로 직접 수행할 수 있습니다. 아니면 로컬로 미리 컴파일한 후 파일을 직접 복사할 수도 있습니다. 웹 사이트 게시 유틸리티는 웹 사이트를 컴파일하고 파일에서 소스 코드를 제거한 후 페이지 및 컴파일된 어셈블리에 대한 스텁 파일만 남겨 둡니다. 사용자가 페이지를 요청하면 ASP.NET은 미리 컴파일한 어셈블리로부터 요청을 이행합니다.

참고:

Microsoft Visual Web Developer Express Edition에서는 웹 사이트 게시 유틸리티를 사용할 수 없습니다.

웹 응용 프로그램 프로젝트

웹 사이트 게시 유틸리티를 사용하는 것에 대한 대안으로 웹 응용 프로그램 프로젝트를 사용하여 웹 사이트를 만들 수 있습니다. 웹 응용 프로그램 프로젝트에서는 모든 클래스 파일이 단일 어셈블리로 컴파일되므로 .aspx 및 .ascx 파일과 기타 정적 콘텐츠 파일과 함께 해당 어셈블리만 배포해야 합니다. 이 웹 응용 프로그램 프로젝트 모델은 Visual Studio .NET 2003에 사용된 모델과 유사합니다. 이 모델에서는 .aspx 파일이 브라우저에서 실행될 때까지 컴파일되지 않습니다. 웹 응용 프로그램 프로젝트에 대한 자세한 내용은 웹 응용 프로그램 프로젝트 개요를 참조하십시오.

배포 도구 선택

사이트의 사용 및 유지 관리 방식에 따라 웹 사이트 복사 도구와 웹 사이트 게시 유틸리티 중 하나를 선택할 수 있습니다.

웹 사이트 복사 도구 선택

웹 사이트 복사 도구를 사용할 때의 장점은 다음과 같습니다.

  • 웹 사이트의 파일을 대상 컴퓨터에 복사하는 간단한 방법으로 배포할 수 있습니다.

  • Visual Studio에서 지원하는 모든 연결 프로토콜을 사용하여 대상 컴퓨터에 배포할 수 있습니다. 네트워크의 다른 컴퓨터에 있는 공유 폴더에 복사하거나, FTP를 사용하여 서버에 복사하거나, HTTP 프로토콜을 사용하여 FrontPage Server Extensions를 지원하는 서버에 복사할 수 있습니다.

  • 서버에서 직접 페이지의 오류를 수정하거나 내용을 변경할 수 있습니다.

  • 파일이 중앙 서버에 저장되어 있는 프로젝트로 작업하는 경우 동기화 기능을 사용하여 파일의 로컬 버전과 원격 버전이 동기화되도록 할 수 있습니다.

웹 사이트 복사 도구를 사용할 때의 단점은 다음과 같습니다.

  • 사이트가 현재 상태 그대로 복사됩니다. 따라서 파일에 컴파일 오류가 포함되어 있는 경우 이러한 오류는 사용자가 페이지를 실행하여 오류가 나타나기 전까지 발견되지 않습니다.

웹 사이트 게시 유틸리티 선택

웹 사이트 게시 유틸리티를 사용할 때의 장점은 다음과 같습니다.

  • 미리 컴파일 프로세스를 통해 Web.config 파일 및 기타 비코드 파일의 오류와 컴파일 타임 오류를 발견할 수 있습니다.

  • ASP.NET 웹 파일 및 사용자 컨트롤의 태그를 비롯하여 웹 사이트에서 소스 코드가 제거됩니다. 따라서 사용자의 지적 재산권 보호에 도움이 되며 다른 사용자들이 사이트의 소스 코드에 액세스하는 것이 훨씬 더 어려워집니다.

  • 사이트의 페이지가 이미 컴파일되어 있으므로 페이지가 처음 요청될 경우 동적으로 컴파일할 필요가 없습니다. 따라서 페이지에 대한 초기 응답 시간을 줄일 수 있습니다. 페이지가 동적으로 컴파일되면 이후 요청에 대해 출력이 캐시됩니다.

웹 사이트 게시 유틸리티를 사용할 때의 단점은 다음과 같습니다.

  • 지정한 게시 옵션에 따라 사이트를 변경할 경우 해당 사이트를 다시 컴파일해야 할 수도 있습니다. 따라서 사이트를 개발하는 동안 페이지를 자주 변경할 경우에는 웹 사이트 게시 유틸리티를 사용하지 않는 것이 좋습니다.

  • 웹 사이트 게시 유틸리티는 컴파일된 사이트를 원격 서버에 배포할 수 없으며 로컬 컴퓨터 또는 LAN상의 다른 컴퓨터에 복사할 수 있을 뿐입니다.

    참고:

    웹 사이트 게시 유틸리티는 대상 폴더와 모든 하위 폴더의 파일을 덮어씁니다. 따라서 기존 콘텐츠를 삭제해도 안전한 위치에 게시해야 합니다.

웹 사이트 복사 도구 사용

웹 사이트 복사 도구를 사용하여 로컬 컴퓨터의 파일을 스테이징 서버 또는 프로덕션 서버로 이동할 수 있습니다. 웹 사이트 복사 도구는 특히 원격 사이트에서 편집할 파일을 열 수 없는 경우에 유용합니다. 웹 사이트 복사 도구를 사용하면 로컬 컴퓨터에 파일을 복사하여 편집한 다음 다시 원격 사이트에 복사할 수 있습니다. 또한 개발 작업이 끝난 경우 이 도구를 사용하여 스테이징 서버의 파일을 프로덕션 서버에 복사할 수도 있습니다.

참고:

GAC에 등록되어 있는 사용자 지정 구성 요소에 대한 참조가 포함된 응용 프로그램을 복사하는 경우 구성 요소는 응용 프로그램과 함께 복사되지 않습니다. 자세한 내용은 방법: 웹 사이트의 .NET 또는 COM 구성 요소에 대한 참조 추가를 참조하십시오.

소스 및 원격 사이트

웹 사이트 복사 도구는 소스 사이트와 원격 사이트 간에 파일을 복사합니다. 이러한 용어는 도구가 사용되는 두 사이트를 구분하기 위해 사용됩니다. 두 용어에는 다음과 같은 의미가 있습니다.

  • 소스 사이트   소스 사이트는 Visual Studio에서 현재 열어 놓은 사이트입니다.

  • 원격 사이트   원격 사이트는 파일을 복사할 대상 사이트입니다. 원격 사이트는 FrontPage Server Extensions 또는 FTP를 사용하여 액세스할 수 있는 다른 컴퓨터의 위치일 수 있습니다. 이러한 경우 이 사이트는 실제로 원격 사이트입니다. 그러나 사용자 컴퓨터의 다른 사이트도 원격 사이트가 될 수 있습니다. 예를 들어 사용자 컴퓨터의 파일 시스템 웹 사이트에서 같은 컴퓨터의 로컬 IIS 웹 사이트에 게시할 수 있습니다. 이런 경우 사이트는 사용자 컴퓨터의 로컬 사이트이지만 웹 사이트 복사 도구를 사용할 때는 원격 사이트로 사용됩니다.

소스 사이트만 복사할 소스로 사용되는 것은 아닙니다. 원격 사이트에서 소스 사이트에 복사할 수도 있습니다.

사이트 동기화

동기화하면 로컬 사이트와 원격 사이트의 파일을 검사하여 두 사이트의 모든 파일이 최신 상태를 유지하게 됩니다. 예를 들어 원격 사이트의 파일이 소스 사이트에 있는 같은 파일의 버전보다 최신인 경우 파일 동기화를 통해 원격 사이트의 파일이 소스 사이트에 복사됩니다.

웹 사이트 복사 도구는 이름만 같고 내용이 다른 파일을 병합하지 않습니다. 이런 경우에는 동기화를 수행하여 유지할 파일의 버전을 지정할 수 있습니다.

웹 사이트 복사 도구는 동기화 기능을 제공하므로 개발자가 자신의 로컬 컴퓨터에 웹 사이트 복사본을 유지하는 다중 개발자 환경에 적합합니다. 각 개발자는 가장 최근에 변경한 내용을 공유 원격 서버에 복사하는 동시에 다른 개발자가 변경한 파일로 로컬 컴퓨터를 업데이트할 수 있습니다. 또한 프로젝트에 새로 참여하는 개발자도 로컬 컴퓨터에 로컬 웹 사이트를 만든 다음 공유 서버의 사이트와 동기화하여 웹 사이트에 대한 모든 파일의 복사본을 신속하게 가져올 수 있습니다.

파일 상태

웹 사이트 복사 도구에서 파일을 동기화하려면 두 사이트에 있는 파일의 상태 정보가 필요합니다. 따라서 이 도구에서는 파일의 타임스탬프 및 동기화를 수행하는 데 필요한 추가 정보로 구성된 정보를 유지 관리합니다. 예를 들어 파일을 마지막으로 확인한 시간 목록을 유지하여 파일 삭제 여부와 같은 정보를 확인할 수 있습니다.

사이트에 연결하거나 사이트를 새로 고치면 웹 사이트 복사 도구는 두 사이트에 있는 파일의 타임스탬프 및 두 사이트에 대해 저장된 정보를 비교하여 각 파일의 상태를 보고합니다. 다음 표에서는 파일의 상태를 보여 줍니다.

상태

설명

변경 안 됨

파일을 마지막으로 복사한 이후에 변경하지 않았습니다.

변경됨

마지막으로 복사한 파일의 타임스탬프보다 현재 파일의 타임스탬프가 최신입니다.

새로 만들기

사이트를 마지막으로 복사한 이후에 파일을 추가했습니다.

삭제됨

사이트를 마지막으로 복사한 이후에 파일을 제거했습니다. 웹 사이트 복사 도구에서 마지막 복사 작업 이후 삭제된 파일 표시을 선택하면 파일에 대한 항목이 창에 표시됩니다.

웹 사이트 게시 유틸리티 사용

웹 사이트 게시 유틸리티를 사용하면 웹 사이트를 게시할 수 있으며 이를 통해 사이트가 컴파일되고 출력이 프로덕션 서버 같은 지정한 위치에 복사됩니다.

참고:

Visual Web Developer Express Edition에서는 웹 사이트 게시 유틸리티를 사용할 수 없습니다.

게시하면 다음과 같은 작업이 수행됩니다.

  • 페이지, App_Code 폴더의 소스 코드 등을 실행 가능한 출력으로 미리 컴파일합니다.

  • 실행 가능한 출력을 대상 폴더에 작성합니다.

    참고:

    GAC에 등록되어 있는 사용자 지정 구성 요소에 대한 참조가 포함된 응용 프로그램을 게시하는 경우 구성 요소는 응용 프로그램과 함께 게시되지 않습니다. 자세한 내용은 방법: 웹 사이트의 .NET 또는 COM 구성 요소에 대한 참조 추가를 참조하십시오.

자세한 내용은 ASP.NET 미리 컴파일 개요를 참조하십시오.

미리 컴파일

웹 사이트를 게시하려면 먼저 해당 사이트를 미리 컴파일해야 합니다. 미리 컴파일은 브라우저에서 처음 요청되는 페이지를 동적으로 컴파일할 때 일반적으로 발생하는 것과 동일한 컴파일 프로세스를 수행합니다. 미리 컴파일 프로세스는 태그와 코드를 모두 포함하여 페이지를 기반으로 어셈블리를 생성합니다. 또한 App_Code, App_GlobalResources, App_LocalResources 및 App_Themes 폴더의 파일도 컴파일합니다.

단일 파일 ASP.NET 페이지와 코드 숨김 페이지를 모두 컴파일할 수 있습니다. 이러한 두 모델에 대한 내용은 ASP.NET 웹 페이지 코드 모델을 참조하십시오.

게시할 때 수행하는 미리 컴파일 단계는 웹 사이트를 테스트하기 위해 Visual Studio에서 빌드하는 경우에 발생하는 컴파일과 다릅니다. 빌드하면 사이트 또는 현재 페이지와 종속 파일이 컴파일된 다음 실행됩니다. 빌드 프로세스는 테스트의 한 유형이며 배포 가능한 출력을 생성하지 않습니다. 반면에 게시 중에 미리 컴파일을 수행하면 프로덕션 서버에 배포할 수 있는 출력이 특정 폴더에 만들어집니다.

미리 컴파일된 출력 작성

미리 컴파일 프로세스가 끝나면 사용자가 지정한 폴더에 출력이 작성됩니다. FTP(파일 전송 프로토콜)를 사용하거나 HTTP를 통해 파일 시스템에서 사용할 수 있는 모든 폴더에 출력을 작성할 수 있습니다. 대상 사이트에 쓸 수 있게 하려면 적절한 권한이 있어야 합니다.

참고:

게시 프로세스를 수행하면 웹 사이트 폴더와 하위 폴더의 파일만 배포되고 Machine.config 파일은 배포되지 않습니다. 따라서 대상 웹 서버의 구성이 사용자 컴퓨터의 구성과 다를 수 있으며 이로 인해 응용 프로그램의 동작에 영향을 줄 수 있습니다.

스테이징 서버 또는 프로덕션 서버에 대상 폴더를 지정하거나 로컬 컴퓨터의 폴더에 출력을 작성할 수 있습니다. 프로덕션 서버에 폴더를 지정하면 미리 컴파일과 배포 작업을 한 번에 수행할 수 있습니다. 그러나 웹 사이트에 포함되지 않은 폴더에 출력을 작성하면 별도의 단계를 통해 출력을 서버에 복사할 수 있습니다.

참고:

Visual Studio를 사용하여 미리 컴파일된 웹 사이트를 여는 경우 해당 웹 사이트를 빌드할 수 없으며 빌드 옵션이 해제됩니다. 게시된 웹 사이트를 변경하려면 원래 웹 사이트에서 파일을 편집하고 사이트를 다시 컴파일한 다음 다시 게시합니다.

컴파일 프로세스의 출력에는 코드 또는 페이지에 대한 컴파일된 어셈블리가 포함됩니다. 미리 컴파일된 사이트를 업데이트할 수 있도록 하는 옵션을 선택하면 .aspx, .asmx 및 .ashx 파일의 코드 숨김 클래스가 어셈블리로 컴파일됩니다. 그러나 .aspx, .asmx 및 .ashx 파일 자체는 현재 상태 그대로 대상 폴더에 복사되므로 사이트를 배포한 후에 파일 레이아웃을 변경할 수 있습니다. 업데이트 가능한 미리 컴파일된 사이트의 경우 단일 파일 페이지의 코드는 어셈블리로 컴파일되는 대신 소스 코드로 배포됩니다.

정적 파일은 컴파일되지 않습니다. 대신 현재 상태 그대로 출력 폴더에 복사됩니다. 정적 파일에는 그래픽 파일, .htm 또는 .html 파일, 텍스트 파일 등이 포함됩니다.

미리 컴파일 중에 오류가 발생하면 출력 창과 오류 목록 창에 보고됩니다. 이런 경우에는 사이트의 컴파일 및 게시 작업이 실행되지 않습니다.

맨 위로 이동

코드 예제

방법: 웹 사이트 복사 도구를 사용하여 웹 사이트 파일 복사

방법: 배포를 위해 ASP.NET 웹 사이트 미리 컴파일

방법: 미리 컴파일된 웹 사이트를 위한 어셈블리에 서명

방법: 미리 컴파일된 웹 사이트에 사용할 버전 지정 어셈블리 만들기

방법: ASP.NET 컴파일 도구를 사용하여 고정된 이름 생성

방법: 게시된 웹 사이트 구성

연습: 웹 사이트 게시

연습: 웹 사이트 복사 도구를 사용하여 웹 사이트 복사

맨 위로 이동

참고 항목

개념

웹 응용 프로그램 프로젝트 개요

ASP.NET 미리 컴파일 개요

참조

맨 위로 이동