본문 바로가기
Skills/ASP.NET

Visual Studio에서 IIS 원격 서버로 Web Deploy 배포하는 방법

by Homil-Rye 2025. 7. 16.
728x90
반응형

 

 

 

Visual Studio에서 직접 원격 IIS 서버로 웹 애플리케이션을 배포하기 위해서는 Web Deploy 환경 구성이 필요합니다.

 

이 글에서는 다음 내용을 중심으로 설정 과정을 정리합니다.

  • Web Deploy 설치 및 구성
  • 방화벽 및 권한 설정
  • Visual Studio 게시 프로필 작성
  • 오류 해결 및 테스트

1. 서버 측 환경 설정 (IIS 서버)

1-1. Web Deploy 설치

기존 서버에 Web Deploy 3.0이 설치되어 있었더라도, msdeploy.axd 요청을 처리할 수 없는 경우가 많습니다.
이럴 때는 Web Deploy 3.6을 설치하거나, 기존 3.0을 수정 설치하여 핸들러가 등록되도록 해야 합니다.

 

 

1-2. 설치 시 필수 구성요소 체크

 

사용자 지정 설치(Custom)로 다음 항목을 반드시 체크해야 합니다:

  • IIS Deployment Handler
  • Remote Agent Service

 

 

설치 후 msdeploy.dll 파일이 아래 경로에 존재해야 합니다:

 

C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.dll

 

1-3. IIS 재시작 또는 앱 풀 재시작

 

설치 후 다음 중 하나를 수행합니다:

  • 전체 IIS 재시작: iisreset
  • 또는 배포 대상 웹사이트의 앱 풀만 재시작

 


 

2. Web Management Service(WMS) 설정

  1. 서비스 실행
    • services.msc → Web Management Service 실행
  2. 포트 8172 허용 확인
    • netstat -an | find "8172" 로 리스닝 여부 확인
  3. IIS 관리자 > 서버 노드 > 관리 서비스
    • 원격 연결 허용 체크

 


 

3. 방화벽 설정

 

Windows Defender 방화벽에서 포트 8172 인바운드 규칙 허용 필요

  1. 고급 보안이 포함된 Windows Defender 방화벽 실행
  2. 인바운드 규칙 → 새 규칙 만들기
    • 포트 선택
    • TCP / 특정 포트: 8172
    • 연결 허용
    • 필요한 경우 특정 IP만 허용 가능

 


 

4. 배포 계정 권한 설정

 

배포에 사용할 Windows 계정에 IIS 사이트 폴더 쓰기 권한이 필요합니다.

 

예: C:\inetpub\wwwroot\MySite

  • 해당 폴더 > 속성 > 보안 > 사용자 추가 > 쓰기/수정 권한 부여

또한, IIS 관리자 > 관리 서비스 위임에서 Web Deploy 권한도 허용되어야 합니다.

 


 

5. Visual Studio에서 게시 설정

5-1. 게시 프로필 생성

  1. 프로젝트 우클릭 → 게시
  2. 프로필 추가 → Web Deploy 선택
  3. 아래 항목 입력:
항목값 예시
서버 https://서버주소:8172/msdeploy.axd
사이트 이름 IIS 사이트 이름
사용자명 Windows 계정
암호 해당 계정 비밀번호
 

5-2. 설정 탭에서 데이터베이스 관련 체크 해제

  • “연결 문자열 포함”, “마이그레이션 적용” 등은 사용하지 않으면 해제
  • .dacpac, .sql 파일 자동 배포 막기 위함

 


 

6. 오류 로그 및 확인 팁

 

대표적인 오류 코드:

상태 코드설명
404 7 0 msdeploy.axd 핸들러 없음 또는 등록 실패
401 인증 실패 (계정 또는 권한 문제)
200 배포 정상 작동 중
 

IIS 로그 확인

IIS 로그 파일 경로 예시:

C:\inetpub\logs\LogFiles\W3SVC<SiteID>\
 

로그에서 cs-uri-stem이 /msdeploy.axd 인 요청 확인 가능

 


 

7. 기타 참고 사항

  • .pubxml 파일은 배포 설정이 저장되는 XML이며, Visual Studio > Publish > Advanced Settings에서 수정 가능
  • web.config도 자동 배포됨. 서버 환경별 분기 설정 필요 시 web.Release.config 등으로 분리 가능
728x90
반응형