Распространение приложения для Windows 10 с сервера IIS

В этом учебнике показано, как настроить сервер IIS, убедиться, что веб-приложение может размещать пакеты приложений, а также вызывать и использовать установщик приложений эффективно.

Приложение "Установщик приложений" позволяет разработчикам и ИТ-специалистам распространять приложения Windows 10 путем их размещения в собственной сети доставки содержимого (CDN). Это полезно для предприятий, которым не требуется публиковать свои приложения в Microsoft Store, но они все же хотят воспользоваться преимуществами платформы упаковки и развертывания Windows 10.

Настройка

Для успешного работы с этим руководством вам потребуется следующее:

  1. Visual Studio 2017
  2. Средства веб-разработки и IIS
  3. пакет приложения Windows 10 — пакет приложения, который будет распространяться

Необязательно: Стартовый проект на GitHub. Это полезно, если у вас нет пакетов приложений для работы с, но по-прежнему требуется научиться использовать эту функцию.

Шаг 1. Установка служб IIS и ASP.NET

службы IIS — это Windows функция, которую можно установить с помощью меню. в меню искать включение и отключение компонентов Windows.

найдите и выберите службы IIS , чтобы установить службы IIS.

Примечание

не нужно выбирать все флажки в разделе службы IIS. достаточно выбрать только те из них, которые выбраны при проверке службы IIS .

кроме того, потребуется установить ASP.NET 4,5 или более поздней версии. чтобы установить его, выберите службы IIS > веб-служб в интернете > функции разработки приложений. выберите версию ASP.NET, которая больше или равна ASP.NET 4,5.

снимок экрана: установка компонента ASP.NET

шаг 2. установка Visual Studio 2017 и средств веб-разработки

установите Visual Studio 2017 , если он еще не установлен. если у вас уже есть Visual Studio 2017, убедитесь, что установлены следующие рабочие нагрузки. если рабочие нагрузки отсутствуют в вашей установке, следуйте указаниям в Visual Studio Installer (найдено в меню).

во время установки выберите ASP.NET и веб-разработка , а также другие необходимые рабочие нагрузки.

после завершения установки запустите Visual Studio и создайте новый проект (файл -> new Project).

Шаг 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 на веб-страницу. Ключом к успешному вызову установщика приложений является использование пользовательской схемы, которую установщик приложения регистрирует в операционной системе: ms-appinstaller:?source= . Дополнительные сведения см. в приведенном ниже примере кода.

Примечание

убедитесь, что url-путь, указанный после настраиваемой схемы, соответствует url-адресу Project на вкладке "веб" в решении VS.

<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. Сборка веб-сайта с помощью ASP .NET Core игнорирует web.config статического содержимого mimeMap. В результате вам потребуется правильная конфигурация веб-сайта .NET Core, на котором будет размещена установка MSIX. необходимо изменить метод configure в файле startup. cs. Дополнительные сведения см. в документации по .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 в этом учебнике, чтобы узнать, как определить начальную страницу.