Distribuera en Windows app från en IIS-server

Varning

Det ms-appinstaller: URI-protokoll som används i dessa självstudier för webbinstallation är inaktiverat som standard från och med december 2023. Användare på de flesta enheter kommer inte att kunna använda det webbläsarutlösta installationsflödet med ett klick. För bred distribution publicera till Microsoft Store i stället. Information om företagshanterade enheter där IT kan återaktivera protokollet via grupprincip finns i Installera Windows appar från en webbsida.

Den här självstudien visar hur du konfigurerar en IIS-server, kontrollerar att webbappen kan vara värd för apppaket och anropar och använder App Installer effektivt.

Appinstallationsappen gör det möjligt för utvecklare och IT-proffs att distribuera Windows 10 appar genom att vara värd för dem i sitt eget content delivery network (CDN). Detta är användbart för företag som inte vill eller behöver publicera sina appar till Microsoft Store, men ändå vill dra nytta av Windows 10 paketerings- och distributionsplattformen.

Inställningar

Om du vill gå igenom den här självstudien behöver du följande:

  1. Visual Studio 2017
  2. Webbutvecklingsverktyg och IIS
  3. Windows 10 apppaket – det apppaket som du ska distribuera

Valfritt: Starter Project på GitHub. Det här är användbart om du inte har apppaket att arbeta med, men ändå vill lära dig hur du använder den här funktionen.

Steg 1 – Installera IIS och ASP.NET

Internet Information Services är en Windows funktion som kan installeras via Start-menyn. I Start-menyn sök efter Aktivera Windows funktioner på eller av.

Leta upp och välj Internet Information Services för att installera IIS.

Anmärkning

Du behöver inte markera alla kryssrutor under Internet Information Services. Endast de som valts när du kontrollerar Internet Information Services räcker.

Du måste också installera ASP.NET 4.5 eller senare. Installera den genom att leta upp Internet Information Services -> World Wide Web Services -> Programutvecklingsfunktioner. Välj en version av ASP.NET som är större än eller lika med ASP.NET 4.5.

Skärmbild av installation av ASP.NET funktion

Steg 2 – Installera Visual Studio 2017 och verktyg för webbutveckling

Installera Visual Studio 2017 om du inte redan har installerat den. Om du redan har Visual Studio 2017 kontrollerar du att följande arbetsbelastningar är installerade. Om arbetsbelastningarna inte finns i installationen, så ska du följa instruktionerna i Visual Studio Installer (som finns på Start-menyn).

Under installationen väljer du ASP.NET och webbutveckling och andra arbetsbelastningar som du är intresserad av.

När installationen är klar startar du Visual Studio och skapar en ny project (File ->Ny Project).

Steg 3 – Skapa en webbapp

Starta Visual Studio 2017 som Administrator och skapa ett nytt Visual C#-webbprogram projekt med ett empty projektmall.

Skärmbild av att skapa ett nytt webbprojekt

Steg 4 – Konfigurera IIS med vår webbapp

Högerklicka på rotprojektet från Prieskumník riešení och välj Egenskaper.

I egenskaperna för webbappen väljer du fliken Webb . I avsnittet Servrar väljer du Lokal IIS i den nedrullningsbara menyn och klickar på Skapa virtuell katalog.

Skärmbild av webbfliken i projektegenskaper

Steg 5 – Lägga till ett apppaket i ett webbprogram

Lägg till det apppaket som du ska distribuera till webbappen. Du kan använda det apppaket som ingår i de angivna starter-projektpaketen på GitHub om du inte har något programpaket tillgängligt. Certifikatet (MySampleApp.cer) som paketet signerades med är också med exemplet på GitHub. Du måste ha certifikatet installerat på enheten innan du installerar appen (steg 9).

I startprojektets webbprogram lades en ny mapp till i webbappen med namnet paket som innehåller de apppaket som ska distribueras. Om du vill skapa mappen i Visual Studio högerklickar du på projektnoden i Prieskumník riešení, väljer Lägg till ->Ny mapp och ger den namnet packages. Om du vill lägga till apppaket i mappen högerklickar du på paketmappen och väljer Lägg till ->Befintligt objekt... och bläddrar till apppaketplatsen.

Skärmbild av att lägga till ett paket

Steg 6 – Skapa en webbsida

Den här exempelwebbappen använder enkel HTML. Du kan skapa din webbapp efter behov.

Högerklicka på rotprojektet i Solution Explorer, välj Lägg till ->Nytt objekt och lägg till en ny HTML-sida från webbavsnittet .

När HTML-sidan har skapats högerklickar du på HTML-sidan i Prieskumník riešení och väljer Uppsättning som startsida.

Dubbelklicka på HTML-filen för att öppna den i kodredigerarens fönster. I den här självstudien används endast de element som krävs på webbsidan för att anropa App Installer-appen för att installera en Windows 10-app.

Inkludera följande HTML-kod på webbsidan. Nyckeln till att anropa App Installer är att använda det anpassade schema som App Installer registrerar med operativsystemet: ms-appinstaller:?source=. Mer information finns i kodexemplet nedan.

Anmärkning

Kontrollera att URL-sökvägen som angetts efter det anpassade schemat matchar Project URL:en på webbfliken i VS-lösningen.

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

Steg 7 – Konfigurera webbappen för MIME-typer för apppaket

Öppna filenWeb.config från Solution Explorer och lägg till följande rader i elementet <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>

Anmärkning

ASP.NET Core använder inte web.config MIME-mappningar för statiskt innehåll. Om värdappen skapas med ASP.NET Core konfigurerar du de innehållstyper som krävs för .appx, .msix, .appxbundle, .msixbundle och .appinstaller i det statiska filmellanprogrammet, vanligtvis i metoden Startup.Configure. Mer information finns i dokumentationen .NET Core.

Steg 8 – Lägg till loopback-undantag för App Installer

På grund av nätverksisolering är Windows 10 appar som App Installer begränsade till att använda IP-loopback-adresser som http://localhost/. När du använder den lokala IIS-servern måste appinstallationsprogrammet läggas till i listan med undantag för loopback.

Det gör du genom att öppna Kommandotolken som administratör och ange följande:

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

Kontrollera att appen har lagts till i undantagslistan genom att använda följande kommando för att visa apparna i listan med undantag för loopback:

CheckNetIsolation.exe LoopbackExempt -s

Du bör hitta microsoft.desktopappinstaller_8wekyb3d8bbwe i listan.

När den lokala valideringen av appinstallationen via App Installer är klar kan du ta bort loopback-undantaget som du lade till i det här steget genom att:

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

Steg 9 – Kör webbappen

Skapa och kör webbprogrammet genom att klicka på körningsknappen i VS-menyfliksområdet enligt bilden nedan:

Skärmbild av körning av webbapp i Visual Studio

En webbsida öppnas i webbläsaren:

Skärmbild av hur du installerar appen från webbsidan

Klicka på länken på webbsidan för att starta appinstallationsappen och installera ditt Windows 10 apppaket.

Felsökningsproblem

Inte tillräcklig behörighet

Om du kör webbappen i Visual Studio visar ett fel, till exempel "Du har inte tillräcklig behörighet för att komma åt IIS-webbplatser på datorn", måste du köra Visual Studio som administratör. Stäng den aktuella instansen av Visual Studio och öppna den igen som administratör.

Ange startsida

När du kör webbappen visas felmeddelandet HTTP 403.14 – Förbjudet i webbläsaren. Detta beror på att webbappen inte har någon definierad startsida. Mer information om hur du definierar en startsida finns i Steg 6 i den här självstudien.