Распространение приложения для 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.

Screenshot of installing ASP.NET feature

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

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

Во время установки выберите ASP.NET и веб-разработку и любые другие интересующие вас рабочие нагрузки.

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

Шаг 3. Создание веб-приложения

Запустите Visual Studio 2017 как Администратор istrator и создайте проект веб-приложения 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-код. Вы можете создать веб-приложение в соответствии с вашими потребностями.

Щелкните правой кнопкой мыши корневой проект обозревателя решений, выберите "Добавить новый> элемент" и добавьте новую HTML-страницу из веб-раздела.

После создания HTML-страницы щелкните правой кнопкой мыши HTML-страницу в Обозреватель решений и выберите "Задать как начальную страницу".

Дважды щелкните HTML-файл, чтобы открыть его в окне редактора кода. В этом руководстве будут использоваться только элементы, необходимые на веб-странице для успешного вызова приложения установщика приложений для установки приложения Windows 10.

Добавьте следующий HTML-код на веб-страницу. Ключ успешного вызова установщика приложений — использовать пользовательскую схему, которую установщик приложений регистрирует в ОС: ms-appinstaller:?source= Дополнительные сведения см. в приведенном ниже примере кода.

Примечание.

Убедитесь, что путь URL-адреса, указанный после пользовательской схемы, соответствует URL-адресу проекта на веб-вкладке решения 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, необходимо изменить метод настройки в файле Startup.cs. Дополнительные сведения см . в документации по .NET Core.

Шаг 8. Добавление исключения обратного цикла для установщика приложений

Из-за сетевой изоляции приложения Windows 10, такие как установщик приложений, ограничены использованием IP-адресов обратной связи, таких как http://localhost/. При использовании локального сервера IIS установщик приложений должен быть добавлен в список исключений из цикла.

Для этого откройте командную строку в качестве Администратор istrator и введите следующее:

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 в этом руководстве, чтобы узнать, как определить начальную страницу.