IIS에 ASP.NET Core 앱 게시

이 자습서에서는 IIS 서버에서 ASP.NET Core 앱을 호스트하는 방법을 보여 줍니다.

이 자습서에서 다루는 주제는 다음과 같습니다.

  • Windows Server에 .NET Core 호스팅 번들을 설치합니다.
  • IIS 관리자에서 IIS 사이트를 만듭니다.
  • ASP.NET Core 앱을 배포합니다.

필수 조건

  • .NET Core SDK가 개발 머신에 설치되어 있어야 합니다.
  • Windows Server가 웹 서버(IIS) 서버 역할로 구성되어 있어야 합니다. 서버가 IIS를 사용하여 웹 사이트를 호스트하도록 구성되지 않은 경우 IIS가 있는 Windows에서 ASP.NET Core 호스트 문서의 IIS 구성 섹션에 있는 지침을 따르고 이 자습서로 돌아옵니다.

Warning

IIS 구성 및 웹 사이트 보안에는 이 자습서에서 다루지 않는 개념이 포함됩니다. IIS에서 프로덕션 앱을 호스트하기 전에 Microsoft IIS 설명서의 IIS 지침 및 IIS를 사용한 호스트에 대한 ASP.NET Core 문서를 참조하세요.

이 자습서에서 다루지 않는 IIS 호스팅에 대한 중요한 시나리오는 다음과 같습니다.

.NET Core 호스팅 번들 설치

IIS 서버에 .NET Core 호스팅 번들을 설치합니다. 번들은 .NET Core 런타임, .NET Core 라이브러리 및 ASP.NET Core 모듈을 설치합니다. 이 모듈을 통해 ASP.NET Core 앱을 IIS 배후에서 실행할 수 있습니다.

다음 링크를 사용하여 설치 관리자를 다운로드합니다.

현재 .NET Core 호스팅 번들 설치 관리자(직접 다운로드)

  1. IIS 서버에서 설치 관리자를 실행합니다.

  2. 서버를 다시 시작하거나 명령 셸에서 실행 net stop was /ynet start w3svc 합니다.

IIS 사이트 만들기

  1. IIS 서버에서 앱의 게시된 폴더 및 파일을 포함할 폴더를 만듭니다. 다음 단계에서는 폴더의 경로가 앱의 실제 경로로 IIS에 제공됩니다. 앱의 배포 폴더 및 파일 레이아웃에 대한 자세한 내용은 ASP.NET Core 디렉터리 구조를 참조하세요.

  2. IIS 관리자의 연결 패널에서 서버 노드를 엽니다. 사이트 폴더를 마우스 오른쪽 단추로 클릭합니다. 상황에 맞는 메뉴에서 웹 사이트 추가를 선택합니다.

  3. 사이트 이름을 입력하고 실제 경로를 만든 앱의 배포 폴더로 설정합니다. 바인딩 구성을 제공하고 확인을 선택하여 웹 사이트를 만듭니다.

    Warning

    최상위 와일드카드 바인딩(http://*:80/http://+:80)을 사용하지 않아야 합니다. 최상위 와일드카드 바인딩은 보안 취약점에 앱을 노출시킬 수 있습니다. 강력한 와일드카드와 약한 와일드카드 모두에 적용됩니다. 와일드카드보다는 명시적 호스트 이름을 사용합니다. 전체 부모 도메인을 제어하는 경우 하위 도메인 와일드카드 바인딩(예: *.mysub.com)에는 이러한 보안 위험이 없습니다(취약한 *.com과 반대임). 자세한 내용은 RFC 9110: HTTP 의미 체계(섹션 7.2: 호스트 및 :authority)를 참조하세요.

  4. 프로세스 모델 ID에 적절한 권한이 있는지 확인합니다.

    앱 풀의 기본 ID(프로세스 모델>Identity)가 ApplicationPoolIdentity에서 다른 ID로 변경되면, 새 ID에 앱의 폴더, 데이터베이스 및 기타 필요한 리소스에 액세스하는 데 필요한 권한이 있는지 확인합니다. 예를 들어 앱 풀에는 앱이 파일을 읽고 쓰는 폴더에 대한 읽기 및 쓰기 권한이 필요합니다.

ASP.NET Core Razor Pages 앱 만들기

ASP.NET Core 시작하기 자습서에 따라 Razor Pages 앱을 만듭니다.

앱 게시 및 배포

‘앱 게시’는 서버에서 호스트할 수 있는 컴파일된 앱을 생성하는 것을 의미합니다. ‘앱 배포’는 게시된 앱을 호스팅 시스템으로 이동하는 것을 의미합니다. 게시 단계는 .NET Core SDK에서 처리되지만, 배포 단계는 다양한 방법으로 처리될 수 있습니다. 이 자습서에서는 다음과 같은 ‘폴더’ 배포 방법을 채택합니다.

  • 앱은 폴더에 게시됩니다.
  • 폴더의 콘텐츠는 IIS 사이트의 폴더(IIS 관리자에 있는 사이트의 실제 경로)로 이동됩니다.
  1. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 게시를 선택합니다.
  2. 게시 대상 선택 대화 상자에서 폴더 게시 옵션을 선택합니다.
  3. 폴더 또는 파일 공유 경로를 설정합니다.
    • 개발 머신에서 네트워크 공유로 사용할 수 있는 IIS 사이트의 폴더를 만든 경우 공유 경로를 제공합니다. 공유에 게시하려면 현재 사용자에게 쓰기 권한이 있어야 합니다.
    • IIS 서버의 IIS 사이트 폴더에 직접 배포할 수 없는 경우 이동식 미디어의 폴더에 게시하고 서버의 IIS 사이트 폴더(IIS 관리자에서 사이트의 실제 경로)로 게시된 앱을 실제로 이동합니다. bin/Release/{TARGET FRAMEWORK}/publish 폴더의 콘텐츠를 서버의 IIS 사이트 폴더(IIS 관리자의 실제 경로)로 옮깁니다.
  4. 게시 단추를 선택합니다.

웹 사이트 찾아보기

앱은 첫 번째 요청을 받은 후 브라우저에서 액세스할 수 있습니다. IIS 관리자에서 사이트에 대해 설정한 엔드포인트 바인딩에서 앱에 대한 요청을 만듭니다.

다음 단계

이 자습서에서는 다음 작업 방법을 알아보았습니다.

  • Windows Server에 .NET Core 호스팅 번들을 설치합니다.
  • IIS 관리자에서 IIS 사이트를 만듭니다.
  • ASP.NET Core 앱을 배포합니다.

IIS에서 ASP.NET Core 앱을 호스트하는 방법에 대한 자세한 내용은 IIS 개요 문서를 참조하세요.

추가 리소스

ASP.NET Core 설명서 세트의 문서

ASP.NET Core 앱 배포와 관련된 문서

IIS HTTPS 구성에 대한 문서

IIS 및 Windows Server에 대한 문서

IIS 관리자를 위한 배포 리소스