다음을 통해 공유


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 버전을 선택합니다.

ASP.NET 기능 설치 스크린샷

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

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

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

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

3단계 - 웹앱 빌드

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

새 웹 프로젝트를 만드는 스크린샷

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

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

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

프로젝트 속성의 웹 탭 스크린샷

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

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

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

패키지 추가 스크린샷

6단계 - 웹 페이지 만들기

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

솔루션 탐색기의 루트 프로젝트를 마우스 오른쪽 단추로 클릭하고 ,새 항목>를 선택하고 섹션에서 새 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을 무시합니다. 따라서 MSIX 설치를 호스트할 .NET Core 웹 사이트의 적절한 구성이 필요하므로 Startup.cs 파일에서 Configure 메서드를 수정해야 합니다. 자세한 내용은 .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 리본에서 실행 단추를 클릭하여 웹 애플리케이션을 빌드하고 실행합니다.

Visual Studio에서 웹앱을 실행하는 스크린샷

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

웹 페이지에서 앱 설치 스크린샷

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

문제 해결

권한이 충분하지 않음

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

시작 페이지 설정

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