IIS 서버에서 Windows 10 앱 배포

이 자습서에서는 IIS 서버를 설정하고, 웹앱이 앱 패키지를 호스트할 수 있는지 확인하고, 앱 설치 관리자를 효과적으로 호출하고 사용하는 방법을 보여 줍니다.

앱 설치 관리자 앱을 사용하면 개발자와 IT 전문가가 자체 CDN(Content Delivery Network)에서 Windows 10 앱을 호스팅하여 배포할 수 있습니다. 이는 Microsoft Store에 앱을 게시하지 않거나 게시할 필요가 없지만 Windows 10 패키징 및 배포 플랫폼을 활용하려는 기업에 유용합니다.

설치 프로그램

이 자습서를 성공적으로 진행하려면 다음이 필요합니다.

  1. Visual Studio 2017
  2. 웹 개발 도구 및 IIS
  3. Windows 10 앱 패키지 - 배포할 앱 패키지

선택 사항: GitHub의 시작 프로젝트 입니다. 이 기능은 사용할 앱 패키지가 없지만 이 기능을 사용하는 방법을 알아보려는 경우에 유용합니다.

1단계 - IIS 설치 및 ASP.NET

인터넷 정보 서비스는 시작 메뉴를 통해 설치할 수 있는 Windows 기능입니다. 시작 메뉴에서Windows 기능 설정 또는 해제를 검색합니다.

인터넷 정보 서비스를 찾아서 선택하여 IIS를 설치합니다.

참고

인터넷 정보 서비스에서 모든 확인란을 선택할 필요는 없습니다. 인터넷 정보 서비스를 확인할 때 선택한 항목만 충분합니다.

ASP.NET 4.5 이상도 설치해야 합니다. 설치하려면 인터넷 정보 서비스 -> World Wide Web Services -> 애플리케이션 개발 기능을 찾습니다. ASP.NET 4.5보다 크거나 같은 ASP.NET 버전을 선택합니다.

Screenshot of installing ASP.NET feature

2단계 - Visual Studio 2017 및 웹 개발 도구 설치

아직 설치하지 않은 경우 Visual Studio 2017을 설치합니다. Visual Studio 2017이 이미 있는 경우 다음 워크로드가 설치되어 있는지 확인합니다. 설치에 워크로드가 없는 경우 Visual Studio 설치 관리자(시작 메뉴에서 찾음)를 사용합니다.

설치하는 동안 ASP.NET 및 웹 개발 및 관심 있는 다른 워크로드를 선택합니다.

설치가 완료되면 Visual Studio를 시작하고 새 프로젝트(파일 ->새 프로젝트)를 만듭니다.

3단계 - 웹앱 빌드

관리자 권한으로 Visual Studio 2017을 시작하고 프로젝트 템플릿을 사용하여 새 Visual C# 웹 애플리케이션 프로젝트를 만듭니다.

Screenshot of creating a new web project

4단계 - 웹앱을 사용하여 IIS 구성

솔루션 탐색기에서 루트 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

웹앱 속성에서 탭을 선택합니다. 서버 섹션의 드롭다운 메뉴에서 로컬 IIS 를 선택하고 가상 디렉터리 만들기를 클릭합니다.

Screenshot of web tab in project properties

5단계 - 웹 애플리케이션에 앱 패키지 추가

웹 애플리케이션에 배포할 앱 패키지를 추가합니다. 사용할 수 있는 앱 패키지가 없는 경우 GitHub에서 제공된 시작 프로젝트 패키지 의 일부인 앱 패키지를 사용할 수 있습니다. 패키지가 서명된 인증서(MySampleApp.cer)도 GitHub의 샘플과 함께 제공됩니다. 앱을 설치하기 전에 디바이스에 인증서를 설치해야 합니다(9단계).

시작 프로젝트 웹 애플리케이션에서 배포할 앱 패키지가 포함된 패키지 라는 새 폴더가 웹앱에 추가되었습니다. Visual Studio에서 폴더를 만들려면 솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 >폴더 추가를 선택하고 패키지 이름을 지정합니다. 폴더에 앱 패키지를 추가하려면 패키지 폴더를 마우스 오른쪽 단추로 클릭하고 [>기존 항목추가]를 선택하고 앱 패키지 위치로 이동합니다.

Screenshot of adding a package

6단계 - 웹 페이지 만들기

이 샘플 웹앱은 간단한 HTML을 사용합니다. 필요에 따라 웹앱을 자유롭게 빌드할 수 있습니다.

솔루션 탐색기의 루트 프로젝트를 마우스 오른쪽 단추로 클릭하고 , 추가 ->New Item을 선택하고, 섹션에서 새 HTML 페이지를 추가합니다.

HTML 페이지가 만들어지면 솔루션 탐색기에서 HTML 페이지를 마우스 오른쪽 단추 로 클릭하고 [시작 페이지로 설정]을 선택합니다.

HTML 파일을 두 번 클릭하여 코드 편집기 창에서 엽니다. 이 자습서에서는 Windows 10 앱을 설치하기 위해 앱 설치 관리자 앱을 성공적으로 호출하는 데 필요한 웹 페이지의 요소만 사용됩니다.

웹 페이지에 다음 HTML 코드를 포함합니다. 앱 설치 관리자를 성공적으로 호출하는 키는 앱 설치 관리자가 OS ms-appinstaller:?source=에 등록하는 사용자 지정 체계를 사용하는 것입니다. 자세한 내용은 아래 코드 예제를 참조하세요.

참고

사용자 지정 체계 다음에 지정된 URL 경로가 VS 솔루션의 웹 탭에 있는 프로젝트 URL과 일치하는지 확인합니다.

<html>
<head>
    <meta charset="utf-8" />
    <title> Install Page </title>
</head>
<body>
    <a href="ms-appinstaller:?source=http://localhost/SampleWebApp/packages/MySampleApp.msixbundle"> Install My Sample App</a>
</body>
</html>

7단계 - 앱 패키지 MIME 형식에 대한 웹앱 구성

솔루션 탐색기에서 Web.config 파일을 열고 요소 내에 <configuration> 다음 줄을 추가합니다.

<system.webServer>
    <!--This is to allow the web server to serve resources with the appropriate file extension-->
    <staticContent>
      <mimeMap fileExtension=".appx" mimeType="application/appx" />
      <mimeMap fileExtension=".msix" mimeType="application/msix" />
      <mimeMap fileExtension=".appxbundle" mimeType="application/appxbundle" />
      <mimeMap fileExtension=".msixbundle" mimeType="application/msixbundle" />
      <mimeMap fileExtension=".appinstaller" mimeType="application/appinstaller" />
    </staticContent>
</system.webServer>

참고

최신 Microsoft 웹 기술 .NET Core에서. .NET Core ASP를 사용하는 웹 사이트 빌드는 web.config 정적 콘텐츠 mimeMap을 무시합니다. 따라서 STARTUP.cs 파일에서 Configure 메서드를 수정해야 하는 MSIX 설치를 호스트하는 .NET Core 웹 사이트의 적절한 구성이 필요합니다. 자세한 내용은 .NET Core 설명서를 참조하세요.

8단계 - 앱 설치 관리자에 대한 루프백 예외 추가

네트워크 격리로 인해 앱 설치 관리자와 같은 Windows 10 앱은 다음과 같은 IP 루프백 주소를 사용하도록 제한됩니다. http://localhost/. 로컬 IIS 서버를 사용하는 경우 앱 설치 관리자를 루프백 제외 목록에 추가해야 합니다.

이렇게 하려면 관리자 권한으로 명령 프롬프트를 열고 다음을 입력합니다.

CheckNetIsolation.exe LoopbackExempt -a -n=microsoft.desktopappinstaller_8wekyb3d8bbwe

앱이 제외 목록에 추가되었는지 확인하려면 다음 명령을 사용하여 루프백 제외 목록에 앱을 표시합니다.

CheckNetIsolation.exe LoopbackExempt -s

목록에서 찾을 microsoft.desktopappinstaller_8wekyb3d8bbwe 수 있습니다.

앱 설치 관리자를 통한 앱 설치의 로컬 유효성 검사가 완료되면 다음 단계를 수행하여 추가한 루프백 예외를 제거할 수 있습니다.

CheckNetIsolation.exe LoopbackExempt -d -n=microsoft.desktopappinstaller_8wekyb3d8bbwe

9단계 - 웹앱 실행

아래 이미지와 같이 VS 리본에서 실행 단추를 클릭하여 웹 애플리케이션을 빌드하고 실행합니다.

Screenshot of running web app in Visual Studio

웹 페이지가 브라우저에서 열립니다.

Screenshot of installing app from web page

웹 페이지의 링크를 클릭하여 앱 설치 관리자 앱을 시작하고 Windows 10 앱 패키지를 설치합니다.

문제 해결

권한이 충분하지 않음

Visual Studio에서 웹앱을 실행하면 "컴퓨터의 IIS 웹 사이트에 액세스할 수 있는 충분한 권한이 없습니다."와 같은 오류가 표시되는 경우 관리자 권한으로 Visual Studio를 실행해야 합니다. Visual Studio의 현재 인스턴스를 닫고 관리자 권한으로 다시 엽니다.

시작 페이지 설정

웹앱을 실행하면 브라우저가 HTTP 403.14 - 사용할 수 없음 오류와 함께 로드되는 경우 웹앱에 정의된 시작 페이지가 없기 때문입니다. 시작 페이지를 정의하는 방법을 알아보려면 이 자습서의 6단계를 참조하세요.