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) 설정
- 서비스 실행
- services.msc → Web Management Service 실행
 
 - 포트 8172 허용 확인
- netstat -an | find "8172" 로 리스닝 여부 확인
 
 - IIS 관리자 > 서버 노드 > 관리 서비스
- 원격 연결 허용 체크
 
 
3. 방화벽 설정
Windows Defender 방화벽에서 포트 8172 인바운드 규칙 허용 필요
- 고급 보안이 포함된 Windows Defender 방화벽 실행
 - 인바운드 규칙 → 새 규칙 만들기
- 포트 선택
 - TCP / 특정 포트: 8172
 - 연결 허용
 - 필요한 경우 특정 IP만 허용 가능
 
 
4. 배포 계정 권한 설정
배포에 사용할 Windows 계정에 IIS 사이트 폴더 쓰기 권한이 필요합니다.
예: C:\inetpub\wwwroot\MySite
- 해당 폴더 > 속성 > 보안 > 사용자 추가 > 쓰기/수정 권한 부여
 
또한, IIS 관리자 > 관리 서비스 위임에서 Web Deploy 권한도 허용되어야 합니다.
5. Visual Studio에서 게시 설정
5-1. 게시 프로필 생성
- 프로젝트 우클릭 → 게시
 - 프로필 추가 → Web Deploy 선택
 - 아래 항목 입력:
 
항목값 예시
 
| 서버 | 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
    
    
  반응형
    
    
    
  'Skills > ASP.NET' 카테고리의 다른 글
| .NET에서 사용되는 주요 풀링(Pooling) 기법 정리 (0) | 2025.06.22 | 
|---|---|
| ASP.NET Web Forms 요청부터 응답까지, 내부 구조 완전 정복 (1) | 2025.06.22 | 
| .NET의 컴파일 과정: C#에서 IL, DLL, JIT, 기계어까지, 그리고 CLR의 역할 (0) | 2024.09.07 | 
| aspx와 ascx의 차이 (1) | 2024.09.07 | 
| bin과 obj 폴더의 역할 (0) | 2024.09.07 |