IIS에서 게시 설정 가져오기 및 Visual Studio로 가져오기
게시 도구를 사용하여 게시 설정을 가져온 다음, 앱을 배포할 수 있습니다. 이 문서에서는 IIS에 대한 게시 설정을 사용합니다.
이러한 단계는 ASP.NET 및 ASP.NET Core 웹 애플리케이션에 적용됩니다.
참고
게시 설정 파일(*.publishsettings)은 게시 프로필(*.pubxml)과 다릅니다. 게시 설정 파일은 IIS에서 만들어진 다음, Visual Studio로 가져올 수 있습니다. Visual Studio가 게시 프로필을 만듭니다.
사전 요구 사항
Visual Studio가 ASP.NET 및 웹 개발 워크로드와 함께 설치되어 있습니다. Visual Studio를 이미 설치한 경우:
- 도움말>업데이트 확인을 차례로 선택하여 Visual Studio에서 최신 업데이트를 설치합니다.
- 도구>도구 및 기능 가져오기를 차례로 선택하여 워크로드를 추가합니다.
서버에서 Windows Server 2012 이상을 실행하고 IIS Web Server 역할이 올바르게 설치되어 있어야 합니다(게시 설정 파일(*.publishsettings)을 생성하는 데 필요함). ASP.NET 4.5 또는 ASP.NET Core도 서버에 설치해야 합니다. 이 자습서의 단계는 Windows Server 2022에서 테스트되었습니다.
ASP.NET Core를 설정하려면 IIS가 있는 Windows에서 ASP.NET Core 호스팅을 참조하세요. ASP.NET Core의 경우 이 문서에 설명된 대로 관리 코드 없음을 사용하도록 애플리케이션 풀을 구성해야 합니다.
ASP.NET 4.5를 설정하려면 ASP.NET 3.5 및 ASP.NET 4.5를 사용하는 IIS 8.0을 참조하세요.
참고
Windows의 IIS는 게시 설정 생성을 지원하지 않습니다. 그러나 Visual Studio의 게시 도구를 사용하여 IIS에 계속 게시할 수 있습니다.
Windows Server에서 웹 배포 설치 및 구성
웹 배포 3.6은 UI에서 게시 설정 파일을 만들 수 있는 추가 구성 기능을 제공합니다.
참고
웹 플랫폼 설치 관리자는 7/1/22에 수명이 종료되었습니다. 자세한 내용은 Web 플랫폼 설치 관리자 - 제품/애플리케이션 피드 지원 종료를 참조하세요. 웹 배포 4.0을 직접 설치하여 게시 설정 파일을 만들 수 있습니다.
아직 IIS 관리 스크립트 및 도구를 설치하지 않은 경우 지금 설치합니다.
서버 역할 선택>웹 서버(IIS)>관리 도구를 선택한 후, IIS 관리 스크립트 및 도구 역할을 선택하고 다음을 클릭한 다음, 해당 역할을 설치합니다.
스크립트 및 도구를 통해 게시 설정 파일을 생성할 수 있어야 합니다.
또한 관리 서비스 및 IIS 관리 콘솔(이미 설치되어 있을 수 있음)도 설치해야 합니다.
Windows Server에서 웹 배포 4.0을 다운로드합니다.
웹 배포 설치 프로그램을 실행하고 일반적인 설치 대신 설치 완료를 선택해야 합니다.
전체 설치를 통해 게시 설정 파일을 생성하는 데 필요한 구성 요소를 가져옵니다. (사용자 지정을 대신 선택하는 경우 다음 그림과 같은 구성 요소 목록을 볼 수 있습니다.)
(선택 사항)제어판 > 시스템 및 보안 > 관리 도구 > 서비스를 열어 웹 배포가 올바르게 실행되는지 확인한 후 다음을 확인합니다.
웹 배포 에이전트 서비스가 실행 중입니다(이전 버전에서는 서비스 이름이 다름).
웹 관리 서비스가 실행 중입니다.
이러한 에이전트 서비스 중 하나가 실행되지 않으면 웹 배포 에이전트 서비스를 다시 시작합니다.
웹 배포 에이전트 서비스가 없는 경우 제어판 > 프로그램 > 프로그램 제거로 이동하여 Microsoft 웹 배포 <버전>을 찾습니다. 설치 변경을 선택하고 웹 배포 구성 요소에 대한 로컬 하드 드라이브에 설치됩니다를 선택해야 합니다. 설치 변경 단계를 완료합니다.
Windows Server의 IIS에서 게시 설정 파일 만들기
UI에서 업데이트된 구성 옵션을 표시하려면 IIS 관리 콘솔을 닫았다가 다시 엽니다.
IIS에서 기본 웹 사이트를 마우스 오른쪽 단추로 클릭하고 배포>웹 배포 게시 구성을 선택합니다.
배포 메뉴가 표시되지 않는 경우 이전 섹션을 참조하여 웹 배포가 실행 중인지 확인합니다.
웹 배포 게시 구성 대화 상자에서 설정을 검토합니다.
설정을 클릭합니다.
결과 패널에서 출력은 지정된 사용자에게 액세스 권한을 부여했으며, .publishsettings 파일 확장명을 가진 파일을 대화 상자에 표시된 위치에 생성했음을 보여줍니다.
<?xml version="1.0" encoding="utf-8"?> <publishData> <publishProfile publishUrl="https://myhostname:8172/msdeploy.axd" msdeploySite="Default Web Site" destinationAppUrl="http://myhostname:80/" profileName="Default Settings" publishMethod="MSDeploy" userName="myhostname\myusername" /> </publishData>
Windows Server 및 IIS 구성에 따라 XML 파일에 다른 값이 표시됩니다. 표시되는 값의 몇 가지 세부 정보는 다음과 같습니다.
publishUrl
특성에서 참조된 msdeploy.axd 파일은 웹 배포에 대해 동적으로 생성된 HTTP 처리기 파일입니다. (테스트 목적으로http://myhostname:8172
도 일반적으로 잘 작동합니다.)publishUrl
포트는 웹 배포에 대한 기본값인 포트 8172로 설정됩니다.destinationAppUrl
포트는 IIS에 대한 기본값인 포트 80으로 설정됩니다.이후 단계에서 호스트 이름을 사용하여 Visual Studio에서 원격 호스트에 연결할 수 없는 경우 호스트 이름 대신 서버의 IP 주소를 테스트합니다.
참고
Azure VM에서 실행되는 IIS에 게시하는 경우 네트워크 보안 그룹에서 웹 배포 및 IIS용 인바운드 포트를 열어야 합니다. 자세한 내용은 가상 머신에 대한 포트 열기를 참조하세요.
Visual Studio를 실행 중인 컴퓨터에 이 파일을 복사합니다.
Visual Studio에서 게시 설정 가져오기 및 배포
ASP.NET 프로젝트가 Visual Studio에서 열려 있는 컴퓨터에서 솔루션 탐색기의 프로젝트를 마우스 오른쪽 단추로 클릭하고, 게시를 선택합니다.
게시 프로필을 이전에 구성한 경우 게시 창이 나타납니다. 신규 또는 새 프로필 만들기를 클릭합니다.
프로필을 가져오는 옵션을 선택합니다.
게시 대화 상자에서 프로필 가져오기를 클릭합니다.
이전 섹션에서 만든 게시 설정 파일의 위치로 이동합니다.
게시 설정 파일 가져오기 대화 상자에서 이전 섹션에서 만든 프로필로 이동하고 선택한 다음, 열기를 클릭합니다.
마침을 클릭하여 게시 프로필을 저장하고, 게시를 클릭합니다.
Visual Studio에서 배포 프로세스를 시작하고, 출력 창에서 진행률 및 결과를 표시합니다.
배포 오류가 발생하는 경우 더 많은 작업>편집을 클릭하여 설정을 편집합니다. 설정을 수정하고 유효성 검사를 클릭하여 새 설정을 테스트합니다. 호스트 이름이 없으면 서버 및 대상 URL 필드 모두에 호스트 이름 대신 IP 주소를 시도합니다.
앱을 성공적으로 배포한 후 자동으로 시작해야 합니다.
일반적인 문제
먼저 Visual Studio의 출력 창에서 상태 정보를 확인하고 오류 메시지를 확인합니다. 다음 액세스 권한도 필요합니다.
- 호스트 이름을 사용하여 호스트에 연결할 수 없는 경우 대신 IP 주소를 사용해 보세요.
- 원격 서버에서 필요한 포트가 열려 있는지 확인합니다.
- ASP.NET Core의 경우 IIS에서 DefaultAppPool에 대한 애플리케이션 풀 필드가 관리 코드 없음으로 설정되었는지 확인해야 합니다.
- 앱에 사용되는 ASP.NET의 버전이 서버에 설치된 버전과 동일한지 확인합니다. 앱의 경우 속성 페이지에서 버전을 보고 설정할 수 있습니다. 앱을 다른 버전으로 설정하려면 해당 버전을 설치해야 합니다.
- 앱을 열려고 했지만 인증서 경고가 표시되면 사이트를 신뢰한다고 선택합니다. 경고를 이미 닫은 경우 프로젝트에서 *.pubxml 파일을 편집하고 다음 요소를 추가할 수 있습니다.
<AllowUntrustedCertificate>true</AllowUntrustedCertificate>
. 이 설정은 테스트용으로만 제공됩니다. - 앱이 Visual Studio에서 시작되지 않는 경우 IIS에서 앱을 시작하여 올바로 배포되는지 테스트합니다.