연습: 웹 배포 패키지를 사용하여 웹 응용 프로그램 프로젝트 배포(4/4부)
이 연습은 웹 배포 패키지를 사용하여 웹 응용 프로그램 프로젝트를 배포하는 방법을 보여 주는 시리즈 중 네 번째 연습입니다. 시리즈에 대한 자세한 내용은 연습: 웹 배포 패키지를 사용하여 웹 응용 프로그램 프로젝트 배포(1/4부)를 참조하십시오.
이 연습에서는 웹 응용 프로그램을 원격 컴퓨터에 설치하기 위해 세 번째 연습에서 만든 패키지를 사용합니다. 이 연습에서는 다음 작업을 수행합니다.
deploy.cmd 파일을 사용하여 원격 컴퓨터에 패키지 설치
패키지가 설치될 때 변경할 수 있도록 할 구성 값에 사용자 지정 배포 매개 변수 사용
사전 요구 사항
필수 구성 요소 목록은 연습: 웹 배포 패키지를 사용하여 웹 응용 프로그램 프로젝트 배포(1/4부)를 참조하십시오.
대상 서버 준비
다른 사용자가 대상 서버를 대신 설정하는 경우 사용해야 하는 배포 방법을 해당 사용자가 지정합니다. 대상 서버를 직접 설정하는 경우에는 배포 방법을 선택해야 합니다. 사용할 수 있는 방법은 다음과 같습니다.
웹 관리 서비스(WMSvc) 및 웹 배포 처리기
웹 배포 에이전트 서비스(MsDepSvc)
웹 배포 tempAgent 공급자 설정
이러한 방법에 대한 자세한 내용이나 이러한 방법 중 하나를 사용하도록 대상 서버를 설정하는 방법에 대한 자세한 내용은 방법: deploy.cmd 파일을 사용하여 배포 패키지 설치를 참조하십시오.
대상 서버는 선택한 배포 방법에 대해 구성될 뿐만 아니라 다음 조건을 충족해야 합니다.
사용하도록 설정된 IIS 7
IIS 7을 사용하여 등록된 ASP.NET 4
기본 웹 사이트에 할당된 ASP.NET 4 응용 프로그램 풀
이 연습을 계속하기 전에 대상 서버를 설정해야 합니다.
배포 매개 변수 설정
다음 절차에서는 SetParameters.xml 파일에 올바른 값이 포함되어 있는지 확인합니다. 이 작업은 IIS 관리자를 사용하여 패키지를 설치할 때 응용 프로그램 패키지 정보 입력 대화 상자에 표시되는 매개 변수 값을 확인하거나 변경하는 것과 같습니다.
SetParamters.xml 파일을 수정하려면
이 시리즈의 첫 번째 연습에서 만든 웹 응용 프로그램 프로젝트를 엽니다.
솔루션 탐색기에서 obj 폴더, Release 폴더, Package 폴더를 차례로 확장합니다. 이전 연습에서 Debug 폴더를 열었습니다. 이번에는 Debug 폴더가 아니라 Release 폴더에서 작업해야 합니다.
AdventureWorks.SetParameters.xml을 엽니다.
이 파일의 XML은 다음 예제와 유사합니다.
<parameters> <setParameter name="IIS Web Application Name" value="Default Web Site/AdventureWorks" /> <setParameter name="machineKey" value="staging" /> <setParameter name="ApplicationServices-Deployment Connection String" value="... " /> <setParameter name="AWLTConnectionString-Deployment Connection String" value="..." /> <setParameter name="ApplicationServices-Web.config Connection String" value="..." /> <setParameter name="AWLTConnectionString-Web.config Connection String" value="..." /> </parameters>
setParameter 요소에 name 특성 값으로 machineKey가 포함되어 있습니다. 이 setParameter 요소의 value 특성은 이 시리즈의 세 번째 연습에서 스테이징 서버에 배포하기 위해 설정한 기본값인 staging입니다. 프로덕션 서버에 패키지를 설치할 준비를 하는 경우 machineKey 매개 변수에 대한 이 setParameter 요소의 value 특성을 프로덕션 값으로 변경할 수 있습니다. 그러면 배포된 Web.config 파일이 스테이징 값 대신 프로덕션 값을 포함하도록 업데이트됩니다.
Deploy.cmd 파일을 사용하여 원격 설치 준비
다음 절차에서는 명령 프롬프트를 열고 deploy.cmd 파일이 포함된 폴더로 이동하여 deploy.cmd 파일을 실행할 준비를 합니다.
Deploy.cmd 파일을 사용하여 원격 설치를 준비하려면
솔루션 탐색기에서 AdventureWorks.SetParameters.xml 파일을 선택합니다.
속성 창에서 전체 경로 속성의 값을 확인합니다.
Windows 시작 메뉴에서 명령 프롬프트를 클릭합니다.
AdventureWorks.SetParameters.xml 파일이 포함된 폴더로 이동합니다.
이제 명령 프롬프트 창에 deploy.cmd 파일을 실행하는 명령을 입력할 준비가 되었습니다.
deploy.cmd 파일의 구문은 사용할 배포 방법에 따라 다릅니다. 선택한 방법에 해당하는 절차를 사용하십시오.
다음 섹션의 구문 예제에는 다음 자리 표시자가 포함되어 있습니다.
ServerName. 이 필드를 대상 서버의 이름으로 바꿉니다.
UserName 및 Password. 해당하는 경우 이러한 필드를 배포를 위해 설정된 실제 자격 증명으로 바꿉니다.
웹 배포 처리기를 사용하여 원격으로 설치
다음 절차에서는 웹 관리 서비스(WMSvc)와 웹 배포 처리기를 사용하여 패키지를 설치하는 방법에 대해 설명합니다.
웹 관리 서비스와 웹 배포 처리기를 사용하여 배포하려면
다음 명령을 입력하여 패키지 설치의 평가 실행을 수행합니다.
AdventureWorks.deploy.cmd /t /m:https://ServerName:8172/MSDeploy.axd /u:username /p:password /a:basic
웹 관리 서비스 배포의 경우 일반적으로 배포에 사용할 사용자 계정이 제공됩니다.
t 옵션은 응용 프로그램을 실제로 배포하기 전에 명령의 결과를 검토할 수 있도록 평가 모드에서 명령을 실행합니다.
참고
특정 시나리오에서는 y 옵션을 사용할 때 배포가 성공하지만 t 옵션을 사용할 때는 배포가 실패할 수 있습니다.자세한 내용은 ASP.NET 웹 응용 프로그램 프로젝트 배포 FAQ을 참조하십시오.
평가 실행의 출력이 예상과 다를 경우 필요한 변경을 수행합니다.
평가 실행의 출력이 예상대로이면 다음 예제와 같이 t(평가) 플래그를 y(예) 플래그로 바꿔서 명령을 반복합니다.
AdventureWorks.deploy.cmd /y /m:https://ServerName:8172/MSDeploy.axd /u:username /p:password /a:basic
웹 배포 에이전트 서비스를 사용하여 원격으로 설치
다음 절차에서는 웹 배포 에이전트 서비스(MsDepSvc)를 사용하여 패키지를 설치하는 방법에 대해 설명합니다.
웹 배포 에이전트 서비스를 사용하여 배포하려면
다음 명령을 입력하여 패키지 설치의 평가 실행을 수행합니다.
AdventureWorks.deploy.cmd /t /m:ServerName
웹 배포 에이전트 서비스의 경우 일반적으로 Windows 인증을 사용하고 사용자 이름과 암호를 지정하지 않습니다.
t 옵션은 응용 프로그램을 실제로 배포하기 전에 명령의 결과를 검토할 수 있도록 평가 모드에서 명령을 실행합니다.
참고
특정 시나리오에서는 y 옵션을 사용할 때 배포가 성공하지만 t 옵션을 사용할 때는 배포가 실패할 수 있습니다.자세한 내용은 ASP.NET 웹 응용 프로그램 프로젝트 배포 FAQ을 참조하십시오.
평가 실행의 출력이 예상과 다를 경우 필요한 변경을 수행합니다.
평가 실행의 출력이 예상대로이면 다음 예제와 같이 t(평가) 플래그를 y(예) 플래그로 바꿔서 명령을 반복합니다.
AdventureWorks.deploy.cmd /y /m:ServerName
tempAgent 공급자 설정을 사용하여 원격으로 설치
다음 절차에서는 웹 배포 tempAgent 공급자 설정을 사용하여 패키지를 설치하는 방법에 대해 설명합니다.
웹 배포 tempAgent 공급자 설정을 사용하여 배포하려면
다음 명령을 입력하여 패키지 설치의 평가 실행을 수행합니다.
AdventureWorks.deploy.cmd /t /m:ServerName /g:true
tempAgent 공급자 설정의 경우 일반적으로 Windows 인증을 사용하고 사용자 이름과 암호를 지정하지 않습니다.
t 옵션은 응용 프로그램을 실제로 배포하기 전에 명령의 결과를 검토할 수 있도록 평가 모드에서 명령을 실행합니다.
참고
특정 시나리오에서는 y 옵션을 사용할 때 배포가 성공하지만 t 옵션을 사용할 때는 배포가 실패할 수 있습니다.자세한 내용은 ASP.NET 웹 응용 프로그램 프로젝트 배포 FAQ을 참조하십시오.
평가 실행의 출력이 예상과 다를 경우 필요한 변경을 수행합니다.
평가 실행의 출력이 예상대로이면 다음 예제와 같이 t(평가) 플래그를 y(예) 플래그로 바꿔서 명령을 반복합니다.
AdventureWorks.deploy.cmd /y /m:ServerName /g:true
다음 단계
이 시리즈의 처음 두 연습에서는 개발 컴퓨터에서 테스트하기 위해 파일 시스템 웹 응용 프로그램 프로젝트를 IIS 웹 응용 프로그램에 배포했습니다. 세 번째 연습에서는 스테이징 서버나 프로덕션 서버에 배포하기 위해 사용할 패키지를 만들었습니다. 시리즈의 마지막인 이 연습에서는 Visual Studio에서 패키지를 만들 때 생성되는 deploy.cmd 파일을 사용하여 원격 컴퓨터에 패키지를 배포했습니다.
스테이징 서버와 프로덕션 서버에 배포하는 다른 일반적인 시나리오는 다음과 같습니다.
웹 팜의 여러 서버에 배포하는 데 동일한 패키지를 사용하고 첫 번째 설치 후 각 설치에 대해 데이터베이스 배포를 비활성화합니다.
대상 서버에서 수동으로 업데이트되므로 해당 변경 사항을 덮어쓰지 않으려는 특정 파일(예: Web.config 파일)이 배포되지 않도록 합니다.
이러한 시나리오를 처리하는 방법에 대한 자세한 내용은 방법: deploy.cmd 파일을 사용하여 배포 패키지 설치를 참조하십시오.