다음을 통해 공유


방법: Visual Studio에서 만든 deploy.cmd 파일을 사용하여 배포 패키지 설치

Visual Studio에서 웹 배포 패키지를 만들면 패키지를 설치하는 데 사용할 수 있는 .cmd 파일이 만들어집니다. 이 .cmd 파일에는 패키지를 설치하는 실제 웹 배포 명령이 포함됩니다. 웹 배포 명령은 길고 복잡할 수 있으므로 명령줄 설치 구문을 보다 쉽게 사용할 수 있도록 하기 위해 .cmd 파일이 제공됩니다.

.cmd 파일을 시작하기 전에 대상 서버가 올바르게 설정되어 있는지 확인해야 합니다. 대상이 원격 서버이면 원격 서버에 적절히 연결되어 있는지 확인하고 해당 원격 서버에 대한 적절한 사용 권한이 있는지 확인해야 합니다. .cmd 파일을 시작할 때 파일에 옵션을 전달할 수 있으며 그러면 .cmd 파일에서는 이 옵션을 웹 배포에 전달합니다.

이 항목에서는 .cmd 파일을 호출하는 데 사용하는 구문에 대해 설명합니다. 또한 .cmd 파일을 호출하기 위한 사전 요구 사항에 대해 간략히 설명하고, 자세한 설정 정보를 얻을 수 있는 다른 리소스에 대한 링크를 제공합니다.

설치 방법 선택

이 단원에서는 패키지를 로컬 또는 원격으로 설치하기 위한 옵션에 대해 간략히 설명한 다음 각 옵션에 대한 서버 구성 절차를 설명합니다. 원격 배포를 위한 서버 구성 절차에서는 시나리오에 가장 적합한 방법을 결정하는 데 도움이 되는 개요를 제공합니다. 또한 각 절차에서는 자세한 지침을 볼 수 있는 Microsoft IIS TechNet 웹 사이트의 항목에 대한 링크도 제공합니다.

테스트 등을 목적으로 개발 컴퓨터에 배포하려는 경우에는 in-process 로컬 배포에 맞게 컴퓨터를 구성하는 방법에 대해 설명하는 절차를 따릅니다.

타사 호스팅 업체나 다른 사용자가 관리하는 대상 서버에 배포하려는 경우에는 호스팅 업체나 서버 관리자가 사용할 방법을 지정합니다. 이 경우 옵션에 대한 개요는 건너뛰어도 됩니다. 대신 사용하려는 방법에 대한 개발 컴퓨터 요구 사항을 설명하는 절차 부분만 읽으면 됩니다.

사용할 수 있는 설치 방법은 다음과 같습니다.

  • 로컬 서버(.cmd 파일을 실행한 서버)에서 in-process 방식으로 패키지를 설치합니다.

    로컬 서버에 대한 관리자 권한이 있어야 합니다. 이 방법은 개발자가 IIS를 사용하여 로컬 테스트를 수행하기 위해 개발 컴퓨터에 배포할 때 일반적으로 사용되는 방법입니다.

  • 원격 서버에서 웹 관리 서비스(WMSvc)와 웹 배포 처리기를 사용하여 설치합니다.

    타사 호스팅 업체에서는 일반적으로 이 배포 방법에 맞게 서버를 설정하므로 클라이언트가 자체적으로 응용 프로그램을 배포할 수 있습니다. 그러나 호스팅 업체에서는 서버에 대한 관리자 권한을 클라이언트에 부여하지 않아도 됩니다. 이 방법은 엔터프라이즈 환경에서 IT 부서가 테스트 서버나 프로덕션 서버에 대한 관리자 권한을 개발자에게 부여하지 않으려는 경우에도 자주 사용됩니다.

    이 방법을 사용하려면 IIS 7이 필요합니다. 대상 서버에 대한 관리자 권한이 있는 사용자는 IIS 관리자를 사용하여 배포에 사용할 수 있는 계정을 설정합니다. 배포할 때는 이 계정의 자격 증명을 사용합니다. 이 방법을 사용할 경우 배포할 때 대상 서버에 대한 관리자 권한이 없어도 된다는 장점이 있습니다. 반면 일반적으로 IIS 설정 구성과 같이 관리자 권한이 필요한 배포 작업은 수행할 수 없다는 단점도 있습니다.

  • 원격 서버에서 웹 배포 에이전트 서비스(MsDepSvc)를 사용하여 설치합니다. 이 서비스를 웹 배포 원격 서비스 또는 간단히 원격 에이전트라고도 합니다.

    원격 서버에 대한 관리자 권한이 있어야 합니다. 이 방법을 사용할 경우 사용자는 대상 서버에서 관리자가 되므로 배포할 때 수행할 수 있는 작업에 제한이 없다는 장점이 있습니다. 배포를 수행하는 사용자가 대상 서버의 관리자가 되어서는 안 되는 경우에는 이 방법을 사용할 수 없습니다.

  • 원격 서버에서 웹 배포 tempAgent 공급자 설정을 사용하여 설치합니다.

    원격 에이전트와 마찬가지로 대상 서버에 대한 관리자 권한이 있어야 합니다. 이 방법을 사용하면 원격 에이전트를 사용할 경우와 비교하여 명령 파일을 실행하는 컴퓨터나 대상 컴퓨터에 웹 배포를 설치하지 않아도 된다는 장점이 있습니다. 웹 배포가 설치된 서버의 공유 폴더에서 웹 배포를 실행할 수 있습니다. 따라서 각 서버에 웹 배포를 먼저 설치하지 않고도 여러 서버에 배포할 수 있습니다. 또한 새 버전의 웹 배포가 릴리스될 때 각 서버를 업데이트하거나 소스 및 대상 컴퓨터의 웹 배포 버전이 동일한지 확인할 필요가 없습니다. tempAgent 공급자 설정을 사용할 경우 원격 에이전트를 사용할 경우에 비해 대상 서버에 몇 가지 추가 설정이 필요합니다. 그러나 유지 관리할 서버가 여러 대인 경우에 이 방법을 사용하면 일반적으로 시간이 지날수록 유지 관리에 필요한 작업이 줄어듭니다.

사용하려는 시나리오에 적절한 옵션을 선택하는 방법에 대한 자세한 내용은 Microsoft TechNet 웹 사이트의 원격 웹 배포 사용하기를 참조하십시오.

이 단원의 나머지 부분에는 각 패키지 설치 방법에 맞게 서버를 구성하는 방법을 간략히 설명하는 절차가 포함되어 있습니다.

로컬 배포에 맞게 서버 구성

다음 절차에서는 in-process 로컬 패키지 설치에 맞게 서버를 설정하는 방법에 대해 설명합니다.

로컬 in-process 배포에 맞게 서버를 설정하려면

  • 서버에 다음 소프트웨어가 설치되어 있는지 확인합니다.

    • IIS 5.1, IIS 6 또는 IIS 7

    • .NET Framework 2.0 SP1 이상 버전(설치하려는 웹 응용 프로그램에 필요한 경우)

    • 웹 배포(패키지를 만드는 데 사용된 것과 동일한 버전)

    웹 플랫폼 설치 관리자를 사용하여 IIS, .NET Framework, 및 웹 배포를 설치하는 방법은 Microsoft 웹 사이트의 Microsoft 웹 플랫폼 설치 관리자 2.0을 참조하십시오.

웹 관리 서비스에 맞게 서버 구성

다음 절차에서는 웹 관리 서비스(WMSvc)와 웹 배포 처리기를 사용하여 배포 패키지를 설치할 수 있도록 소스 및 대상 컴퓨터를 설정하는 방법에 대해 간략히 설명합니다. 추가 정보와 세부 지시사항에 대한 내용은 Microsoft TechNet 웹 사이트의 웹 배포 처리기 구성하기 또는 IIS의 웹 배포 처리기 구성하기를 참조하십시오. NET 웹 사이트

배포에 웹 관리 서비스를 사용하도록 서버를 설정하려면

  1. deploy.cmd 파일을 실행할 컴퓨터에 다음 소프트웨어가 설치되어 있는지 확인합니다.

    • 웹 배포(패키지를 만드는 데 사용된 것과 동일한 버전)
  2. 대상 서버에 다음 소프트웨어가 설치되어 있는지 확인합니다.

    • IIS 7

    • .NET Framework 2.0 SP1 이상 버전(설치하려는 웹 응용 프로그램에 필요한 경우)

    • 웹 배포(패키지를 만드는 데 사용된 것과 동일한 버전)

    웹 플랫폼 설치 관리자를 사용하여 IIS, .NET Framework, 및 웹 배포를 설치하는 방법은 Microsoft 웹 사이트의 Microsoft 웹 플랫폼 설치 관리자 2.0을 참조하십시오.

  3. 대상 서버에서 다음 단계에 따라 웹 관리 서비스(WMSvc)를 구성합니다.

    1. 관리 서비스 역할 서비스를 추가합니다.

    2. 원격 연결을 사용하도록 설정합니다.

    3. 패키지 설치에 사용할 사용자 계정을 만듭니다.

    4. 사용자 계정에 대한 위임 규칙을 추가합니다.

  4. 대상 컴퓨터에서 패키지를 설치할 IIS 웹 사이트의 응용 프로그램 풀이 패키지에 필요한 .NET Framework 버전으로 설정되어 있는지 확인합니다. 패키지에 웹 응용 프로그램 이름은 지정되어 있지만 웹 사이트 이름이 지정되지 않은 경우 기본 웹 사이트에 패키지가 설치됩니다.

웹 배포 원격 서비스에 맞게 서버 구성

다음 절차에서는 웹 배포 에이전트 서비스(MSDepSvc)를 사용하여 원격으로 패키지를 설치할 수 있도록 소스 및 대상 컴퓨터를 설정하는 방법에 대해 간략히 설명합니다. 자세한 내용은 Microsoft TechNet 웹 사이트의 웹 배포 원격 서비스를 참조하십시오.

배포에 웹 배포 에이전트 서비스를 사용하도록 서버를 설정하려면

  1. deploy.cmd 파일을 실행할 서버에 다음 소프트웨어가 설치되어 있는지 확인합니다.

    • 웹 배포(패키지를 만드는 데 사용된 것과 동일한 버전)
  2. 대상 서버에 다음 소프트웨어가 설치되어 있는지 확인합니다.

    • IIS 5.1, IIS 6 또는 IIS 7

    • .NET Framework 2.0 SP1 이상 버전(설치하려는 웹 응용 프로그램에 필요한 경우)

    • 웹 배포(패키지를 만드는 데 사용된 것과 동일한 버전)

    IIS, .NET Framework, 및 웹 배포를 설치하기 위해 웹 플랫폼 설치 관리자를 사용하는 방법은 Microsoft 웹 사이트의 Microsoft 웹 플랫폼 설치 관리자 2.0을 참조하십시오.

  3. 대상 서버에서 MSDepSvc 서비스가 구성 및 시작되었는지 확인합니다.

  4. 대상 서버에서 포트 80을 통한 HTTP 트래픽을 허용하도록 방화벽을 구성합니다.

  5. 대상 컴퓨터에서 패키지를 설치할 IIS 웹 사이트의 응용 프로그램 풀이 패키지에 필요한 .NET Framework 버전으로 설정되어 있는지 확인합니다. 패키지에 웹 응용 프로그램 이름은 지정되어 있지만 웹 사이트 이름이 지정되지 않은 경우 기본 웹 사이트에 패키지가 설치됩니다.

tempAgent 공급자 설정에 맞게 서버 구성

다음 절차에서는 웹 배포 tempAgent 공급자 설정을 사용하여 원격으로 설치할 수 있도록 소스 및 대상 컴퓨터를 설정하는 방법에 대해 간략히 설명합니다. 자세한 내용은 Microsoft TechNet 웹 사이트의 요구에 따른 웹 배포를 참조하십시오.

배포에 웹 배포 tempAgent 공급자 설정을 사용하도록 서버를 설정하려면

  1. 소스 컴퓨터에 다음 소프트웨어가 설치되어 있는지 확인합니다.

    • 웹 배포 에이전트 서비스(MSDepSvc)

      참고

      기본적으로 웹 배포 에이전트 서비스는 Visual Studio와 함께 설치되지 않습니다.이 서비스를 설치하려면 웹 배포 도구 설치 프로그램을 실행하고 원격 에이전트 서비스를 선택하십시오.

  2. 대상 서버에 다음 소프트웨어가 설치되어 있는지 확인합니다.

    • IIS 5.1, IIS 6 또는 IIS 7

    • .NET Framework 2.0 SP1 이상 버전(설치하려는 웹 응용 프로그램에 필요한 경우)

    웹 플랫폼 설치 관리자를 사용하여 IIS 및 .NET Framework를 설치하는 방법은 Microsoft 웹 사이트의 Microsoft 웹 플랫폼 설치 관리자 2.0을 참조하십시오.

  3. 대상 서버에서 다음을 허용하도록 방화벽을 구성합니다.

    • 포트 80을 통한 HTTP 트래픽

    • WMI 트래픽

  4. 대상 서버에서 WMI(Windows Management Instrumentation) 서비스가 실행되고 있는지 확인합니다.

  5. 대상 서버에 임시 웹 배포 프로그램 파일을 복사할 수 있는 공유 폴더가 있는지 확인합니다.

  6. 대상 서버에 웹 배포 에이전트 서비스(MSDepSvc)가 설치되어 있지 않은지 확인합니다. 이 서비스가 설치되어 있으면 배포 프로세스에 방해가 됩니다.

  7. 배포 명령 파일을 실행할 때 사용하는 자격 증명이 원격 서버에서 로컬 관리자에 해당하는 사용자 계정의 자격 증명인지 확인합니다.

  8. 대상 컴퓨터에서 패키지를 설치할 IIS 웹 사이트의 응용 프로그램 풀이 패키지에 필요한 .NET Framework 버전으로 설정되어 있는지 확인합니다. 패키지에 웹 응용 프로그램 이름은 지정되어 있지만 웹 사이트 이름이 지정되지 않은 경우 기본 웹 사이트에 패키지가 설치됩니다.

명령 파일 실행

먼저 평가 모드에서 웹 배포를 실행하여 배포가 예상대로 작동하는지 확인하는 것이 좋습니다. 그러면 예기치 않은 문제가 발생하더라도 실제 배포를 수행하기 전에 변경 작업을 수행할 수 있습니다. 다음 절차에서는 일반적인 일부 시나리오의 경우 명령 파일을 실행하는 방법을 설명합니다.

명령 파일을 사용하여 배포하려면

  1. 패키지 (ProjectName.zip), ProjectName.SetParameters.xml 파일 및 ProjectName.deploy.cmd 파일은 모두 같은 폴더 안에 있어야 합니다.

    tempAgent 공급자 설정을 사용하는 경우 이 폴더는 원격 컴퓨터에 있을 수 있습니다. 그렇지 않으면 명령 파일을 실행하려는 컴퓨터에 있어야 합니다.

  2. SetParameters.xml 파일에 포함된 매개 변수의 값을 사용자 지정하려면 이 파일을 편집하여 값을 변경합니다.

    예를 들어 동일한 패키지를 사용하여 먼저 스테이징 서버에 설치하고 나중에 프로덕션 서버에 설치할 수 있습니다. 이 경우 이러한 각 설치에 대해 데이터베이스 연결 문자열 값이 달라져야 합니다.

  3. t 플래그(평가 모드)와 해당 시나리오에 적절한 선택적 플래그를 지정하여 명령 파일을 실행합니다.

    다음은 일반적인 몇 가지 시나리오와 해당 시나리오에 적절한 선택적 플래그에 대한 설명입니다.

    참고

    지원되는 선택적 플래그의 목록을 보려면 명령 프롬프트에 .cmd 파일 이름을 입력하고 뒤에 아무 플래그도 입력하지 마십시오..cmd 파일을 열면 추가 플래그를 볼 수 있습니다.도움말 텍스트에 표시되지 않으며 이 항목에 설명되지 않은 플래그는 지원되지 않는 플래그이므로 사용하면 안 됩니다.

    참고

    활성 코드 페이지에 없는 문자가 대상 서버 이름, 사용자 이름 또는 암호에 사용되는 경우 .cmd 파일이 실패할 수 있습니다.

    • 웹 관리 서비스(WMSvc)의 경우, 다음 구문을 사용하여 m 플래그를 포함하고 서비스 URL을 MSDeploy.axd로 지정합니다.

      ProjectName.deploy.cmd /t /m:https://DestinationServerName:8172/MSDeploy.axd

      사용자 이름과 암호를 지정하려면 u 및 p 플래그를 포함합니다. 기본 인증을 지정하려면 a 플래그를 추가합니다. 다음 예제에서는 이러한 플래그를 사용하는 방법을 보여 줍니다.

      ProjectName.deploy.cmd /t /m:DestinationServerName /u:User /p:Password /a:basic

      신뢰할 수 없는 인증서를 허용하려면 다음 예제와 같이 -AllowUntrusted=True를 추가합니다.

      ProjectName.deploy.cmd /t /m:DestinationServerName /u:User /p:Password /a:basic -AllowUntrusted=True

    • 웹 배포 에이전트 서비스(MSDepSvc)의 경우, 다음 구문을 사용하여 m 플래그를 포함하고 대상 서버 이름 또는 서비스 URL을 MSDeployAgentService로 지정합니다.

      ProjectName.deploy.cmd /t /m:DestinationServerName

      ProjectName.deploy.cmd /t /m:http://DestinationServerName/MSDeployAgentService

      사용자 이름과 암호를 지정하려면 u 및 p 플래그를 포함합니다. WMSvc의 경우와 같이 a 플래그를 추가하지 마십시오.

    • tempAgent 공급자 설정의 경우, 다음 구문을 사용하여 g 플래그와 m 플래그를 포함하고 컴퓨터 이름을 지정합니다.

      ProjectName.deploy.cmd /t /m:DestinationServerName /g:true

      사용자 이름과 암호를 지정하려면 u 및 p 플래그를 포함합니다. WMSvc의 경우와 같이 a 플래그를 추가하지 마십시오.

    • 데이터베이스 공급자를 건너뛰려면 다음 구문을 사용하여 SQL Server 공급자에 대한 웹 배포 skip 명령을 포함합니다.

      ProjectName.deploy.cmd /t "-skip:objectName=dbFullSql"

      웹 팜에 배포하려고 하며 데이터베이스를 한 번만 배포하려는 경우 이 명령을 포함할 수 있습니다.

    • Web.config를 건너뛰려면 파일에 대한 웹 배포 skip 명령을 포함합니다. 대상 서버에서 수동으로 구성한 Web.config 파일 설정을 덮어쓰지 않으려는 경우 이 명령을 포함할 수 있습니다.

      다음 예제에서는 응용 프로그램의 모든 Web.config 파일을 건너뛰는 방법을 보여 줍니다.

      ProjectName.deploy.cmd /t "-skip:objectName= filePath,absolutePath=\\ApplicationFolder\\[\w\s]+web\.config$"

      다음 예제에서는 응용 프로그램 Web.config 파일만 건너뛰는 방법을 보여 줍니다.

      ProjectName.deploy.cmd /t "-skip:objectName= filePath,absolutePath=\\ApplicationFolder\\web\.config$"

  4. 평가 모드 배포 시 생성된 로그를 검토하고 필요한 사항을 변경한 다음 t 플래그를 사용하여 명령 파일을 다시 실행합니다.

  5. 원하는 배포 변경 사항이 로그에 정확히 반영될 때까지 앞의 단계를 반복합니다.

  6. t 플래그 대신 y 플래그("yes" 또는 업데이트 모드)를 사용하고 선택한 선택적 플래그를 사용하여 명령 파일을 실행합니다.

    웹 배포가 배포를 수행한 후 수행한 작업에 대한 로그를 표시합니다.

앞의 절차에서는 일반적인 시나리오의 구문 예제를 제공하고 .cmd 파일에 정의된 플래그를 사용하는 방법을 보여 줍니다. 다른 시나리오의 경우 웹 배포에 모든 웹 배포 명령을 전달할 수 있습니다. 즉, .cmd 파일에 정의된 플래그에 제한이 없습니다. 등호(=)를 포함하는 명령을 지정할 경우 앞의 예제와 같이 플래그를 큰따옴표로 묶어야 합니다.

_MsDeployAdditionalFlags 환경 변수를 설정하여 웹 배포 명령을 지정할 수도 있습니다.

사용할 수 있는 다른 웹 배포 명령에 대한 자세한 내용은 웹 배포 명령 줄 참조를 참조하십시오.

참고 항목

개념

Visual Studio 및 ASP.NET에 대한 웹 배포 콘텐츠 맵