Distribuire un'app di Windows 10 da un server IISDistribute a Windows 10 app from an IIS server

Questa esercitazione illustra come configurare un server IIS, verificare che l'app Web possa ospitare i pacchetti dell'app e richiamare e usare il programma di installazione delle app in modo efficace.This tutorial demonstrates how to set up an IIS server, verify that your web app can host app packages, and invoke and use App Installer effectively.

L'app del programma di installazione delle app consente agli sviluppatori e ai professionisti IT di distribuire le app di Windows 10 ospitando tali app nella rete per la distribuzione di contenuti (CDN).The App Installer app allows developers and IT Pros to distribute Windows 10 apps by hosting them on their own Content Delivery Network (CDN). Questa funzionalità è utile per le aziende che non vogliono o non hanno bisogno di pubblicare le proprie app nel Microsoft Store, ma vogliono comunque sfruttare i vantaggi offerti dalla piattaforma di creazione pacchetti e distribuzione di Windows 10.This is useful for enterprises that don't want or need to publish their apps to the Microsoft Store, but still want to take advantage of the Windows 10 packaging and deployment platform.

ConfigurazioneSetup

Per eseguire correttamente questa esercitazione, è necessario quanto segue:To successfully go through with this tutorial, you will need the following:

  1. Visual Studio 2017Visual Studio 2017
  2. Strumenti di sviluppo Web e IISWeb development tools and IIS
  3. Pacchetto app Windows 10: pacchetto dell'app che si distribuiràWindows 10 app package - The app package that you will distribute

Facoltativo: progetto iniziale su GitHub.Optional: Starter Project on GitHub. Questa operazione è utile se non si dispone di pacchetti di app da usare, ma si vuole comunque apprendere come usare questa funzionalità.This is helpful if you don't have app packages to work with, but would still like to learn how to use this feature.

Passaggio 1: installare IIS e ASP.NETStep 1 - Install IIS and ASP.NET

Internet Information Services è una funzionalità di Windows che può essere installata tramite il menu Start.Internet Information Services is a Windows feature that can be installed via the Start menu. Nel menu Start cercare attiva o disattiva le funzionalità di Windows.In Start menu search for Turn Windows features on or off.

Trovare e selezionare Internet Information Services per installare IIS.Find and select Internet Information Services to install IIS.

Nota

Non è necessario selezionare tutte le caselle di controllo in Internet Information Services.You don't need to select all the check boxes under Internet Information Services. Sono sufficienti solo le selezioni selezionate quando si seleziona Internet Information Services .Only the ones selected when you check Internet Information Services are sufficient.

Sarà inoltre necessario installare ASP.NET 4,5 o versione successiva.You will also need to install ASP.NET 4.5 or greater. Per installarlo, individuare le funzionalità di sviluppo delle applicazioni Internet Information Services > World Wide Web Services->.To install it, locate Internet Information Services -> World Wide Web Services -> Application Development Features. Selezionare una versione di ASP.NET maggiore o uguale a ASP.NET 4,5.Select a version of ASP.NET that is greater than or equal to ASP.NET 4.5.

Screenshot dell'installazione della funzionalità ASP.NET

Passaggio 2: installare Visual Studio 2017 e gli strumenti di sviluppo WebStep 2 - Install Visual Studio 2017 and Web Development tools

Installare Visual Studio 2017 se non è già stato installato.Install Visual Studio 2017 if you have not already installed it. Se si dispone già di Visual Studio 2017, verificare che siano installati i carichi di lavoro seguenti.If you already have Visual Studio 2017, ensure that the following workloads are installed. Se i carichi di lavoro non sono presenti nell'installazione, seguire questa procedura usando il Programma di installazione di Visual Studio (disponibile nel menu Start).If the workloads are not present on your installation, follow along using the Visual Studio Installer (found from the Start menu).

Durante l'installazione, selezionare ASP.NET e sviluppo Web e tutti gli altri carichi di lavoro a cui si è interessati.During installation, select ASP.NET and Web development and any other workloads that you are interested in.

Al termine dell'installazione, avviare Visual Studio e creare un nuovo progetto (file -> nuovo progetto).Once installation is complete, launch Visual Studio and create a new project (File -> New Project).

Passaggio 3: creare un'app WebStep 3 - Build a Web App

Avviare Visual Studio 2017 come amministratore e creare un nuovo progetto di applicazione Web Visual C# con un modello di progetto vuoto .Launch Visual Studio 2017 as Administrator and create a new Visual C# Web Application project with an empty project template.

Screenshot della creazione di un nuovo progetto Web

Passaggio 4: configurare IIS con l'app WebStep 4 - Configure IIS with our Web App

Dal Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto radice e selezionare Proprietà.From the Solution Explorer, right click on the root project and select Properties.

Nelle proprietà dell'app Web selezionare la scheda Web . Nella sezione Server scegliere IIS locale dal menu a discesa e fare clic su Crea directory virtuale.In the web app properties, select the Web tab. In the Servers section, choose Local IIS from the drop down menu and click Create Virtual Directory.

Screenshot della scheda Web nelle proprietà del progetto

Passaggio 5: aggiungere un pacchetto dell'app a un'applicazione WebStep 5 - Add an app package to a web application

Aggiungere il pacchetto dell'app che si intende distribuire nell'applicazione Web.Add the app package that you are going to distribute into the web application. Se non è disponibile un pacchetto dell'app, è possibile usare il pacchetto dell'app che fa parte dei pacchetti del progetto di avvio forniti in GitHub.You can use the app package that is part of the provided starter project packages on GitHub if you don't have an app package available. Il certificato (MySampleApp. cer) con cui è stato firmato il pacchetto è anche con l'esempio su GitHub.The certificate (MySampleApp.cer) that the package was signed with is also with the sample on GitHub. È necessario che il certificato sia installato nel dispositivo prima di installare l'app (passaggio 9).You must have the certificate installed to your device prior to installing the app (Step 9).

Nell'applicazione Web di avvio del progetto, è stata aggiunta una nuova cartella all'app Web denominata pacchetti che contiene i pacchetti dell'applicazione da distribuire.In the starter project web application, a new folder was added to the web app called packages that contains the app packages to be distributed. Per creare la cartella in Visual Studio, fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni, scegliere Aggiungi -> nuova cartella e assegnare un nome ai pacchetti.To create the folder in Visual Studio, right click on the project node in Solution Explorer, select Add -> New Folder and name it packages. Per aggiungere i pacchetti dell'app alla cartella, fare clic con il pulsante destro del mouse sulla cartella pacchetti e scegliere Aggiungi -> elemento esistente e passare al percorso del pacchetto dell'app.To add app packages to the folder, right click on the packages folder and select Add -> Existing Item... and browse to the app package location.

Screenshot dell'aggiunta di un pacchetto

Passaggio 6: creare una pagina WebStep 6 - Create a Web Page

Questa app Web di esempio usa un codice HTML semplice.This sample web app uses simple HTML. È possibile compilare l'app Web in base alle esigenze.You are free to build your web app as required per your needs.

Fare clic con il pulsante destro del mouse sul progetto radice di Esplora soluzioni, scegliere Aggiungi -> nuovo elementoe aggiungere una nuova pagina HTML dalla sezione Web .Right click on the root project of the Solution explorer, select Add -> New Item, and add a new HTML Page from the Web section.

Una volta creata la pagina HTML, fare clic con il pulsante destro del mouse sulla pagina HTML nella Esplora soluzioni e selezionare Imposta come pagina iniziale.Once the HTML page is created, right click on the HTML page in the Solution Explorer and select Set As Start Page.

Fare doppio clic sul file HTML per aprirlo nella finestra dell'editor di codice.Double-click the HTML file to open it in the code editor window. In questa esercitazione, verranno usati solo gli elementi nel necessario nella pagina Web per richiamare l'app del programma di installazione dell'app correttamente per installare un'app di Windows 10.In this tutorial, only the elements in the required in the web page to invoke the App Installer app successfully to install a Windows 10 app will be used.

Includere il codice HTML seguente nella pagina Web.Include the following HTML code in your web page. La chiave per richiamare correttamente il programma di installazione delle app consiste nell'usare lo schema personalizzato registrato dal programma di installazione delle app con il sistema operativo: ms-appinstaller:?source= .The key to successfully invoking App Installer is to use the custom scheme that App Installer registers with the OS: ms-appinstaller:?source=. Per altri dettagli, vedere l'esempio di codice riportato di seguito.See the code example below for more details.

Nota

Verificare che il percorso URL specificato dopo lo schema personalizzato corrisponda all'URL del progetto nella scheda Web della soluzione di Visual Studio.Ensure that the URL path specified after the custom scheme matches the Project Url in the web tab of your VS solution.

<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>

Passaggio 7: configurare l'app Web per i tipi MIME del pacchetto dell'appStep 7 - Configure the web app for app package MIME types

Aprire il file di Web.config da Esplora soluzioni e aggiungere le righe seguenti all'interno dell' <configuration> elemento.Open the Web.config file from the solution explorer and add the following lines within the <configuration> element.

<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>

Passaggio 8: aggiungere l'esenzione del loopback per il programma di installazione delle appStep 8 - Add loopback exemption for App Installer

A causa dell'isolamento rete, le app di Windows 10 come il programma di installazione delle app sono limitate all'uso di indirizzi di loopback IP come http://localhost/ .Due to network isolation, Windows 10 apps like App Installer are restricted to use IP loopback addresses like http://localhost/. Quando si usa il server IIS locale, il programma di installazione dell'app deve essere aggiunto all'elenco di esenzione loopback.When using local IIS Server, App Installer must be added to the loopback exempt list.

A tale scopo, aprire il prompt dei comandi come amministratore e immettere quanto segue:To do this, open Command Prompt as an Administrator and enter the following:

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

Per verificare che l'app venga aggiunta all'elenco di esenzione, usare il comando seguente per visualizzare le app nell'elenco di esenzione loopback:To verify that the app is added to the exempt list, use the following command to display the apps in the loopback exempt list:

CheckNetIsolation.exe LoopbackExempt -s

È necessario trovare microsoft.desktopappinstaller_8wekyb3d8bbwe nell'elenco.You should find microsoft.desktopappinstaller_8wekyb3d8bbwe in the list.

Una volta completata la convalida locale dell'installazione dell'app tramite il programma di installazione dell'app, è possibile rimuovere l'esenzione del loopback aggiunta in questo passaggio per:Once the local validation of app installation via App Installer is complete, you can remove the loopback exemption that you added in this step by:

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

Passaggio 9: eseguire l'app WebStep 9 - Run the Web App

Compilare ed eseguire l'applicazione Web facendo clic sul pulsante Run (Esegui) sulla barra multifunzione di Visual Studio, come illustrato nell'immagine seguente:Build and run the web application by clicking on the run button on the VS Ribbon as shown in the image below:

Screenshot dell'esecuzione di app Web in Visual Studio

Nel browser viene aperta una pagina Web:A web page will open in your browser:

Screenshot dell'installazione di un'app da una pagina Web

Fare clic sul collegamento nella pagina Web per avviare l'app del programma di installazione dell'app e installare il pacchetto dell'app Windows 10.Click on the link in the web page to launch the App Installer app and install your Windows 10 app package.

Risoluzione dei problemiTroubleshooting issues

Privilegio non sufficienteNot sufficient privilege

Se l'esecuzione dell'app Web in Visual Studio Visualizza un errore, ad esempio "non si dispone di privilegi sufficienti per accedere ai siti Web IIS nel computer", sarà necessario eseguire Visual Studio come amministratore.If running the web app in Visual Studio displays an error such as "You do not have sufficient privilege to access IIS web sites on your machine", you will need to run Visual Studio as an administrator. Chiudere l'istanza corrente di Visual Studio e riaprirla come amministratore.Close the current instance of Visual Studio and reopen it as an admin.

Imposta pagina inizialeSet start page

Se l'esecuzione dell'app Web causa il caricamento del browser con un errore HTTP 403,14-Forbidden, l'app Web non dispone di una pagina iniziale definita.If running the web app causes the browser to load with an HTTP 403.14 - Forbidden error, it's because the web app doesn't have a defined start page. Vedere il passaggio 6 di questa esercitazione per informazioni su come definire una pagina iniziale.Refer to Step 6 in this tutorial to learn how to define a start page.