Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Annotazioni
Questa non è la versione più recente di questo articolo. Per la versione corrente, vedere la versione .NET 10 di questo articolo.
Avvertimento
Questa versione di ASP.NET Core non è più supportata. Per altre informazioni, vedere i criteri di supporto di .NET e .NET Core. Per la versione corrente, vedere la versione .NET 9 di questo articolo.
Questo articolo illustra come ospitare e distribuire tramite Internet Information Services (IIS).This article explain how to host and deploy Blazor WebAssembly using Internet Information Services (IIS).
IIS è un file server statico in grado di supportare le Blazor app. Per configurare IIS per ospitare Blazor, vedere Creare un sito Web statico in IIS.
Gli asset pubblicati sono creati nella cartella /bin/Release/{TARGET FRAMEWORK}/publish o bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish, dove il segnaposto {TARGET FRAMEWORK} è il framework di destinazione. Ospitare il contenuto della publish cartella nel server Web o nel servizio di hosting.
File web.config
Quando viene pubblicato un Blazor progetto, viene creato un web.config file con la configurazione IIS seguente:
- Tipi MIME
- La compressione HTTP è abilitata per i tipi MIME seguenti:
application/octet-streamapplication/wasm
- Vengono stabilite le regole del modulo di riscrittura URL:
- Gestire la sottodirectory in cui risiedono gli asset statici dell'app (
wwwroot/{PATH REQUESTED}). - Creare il routing di fallback SPA in modo che le richieste di risorse non di file vengano reindirizzate al documento predefinito dell'applicazione nella cartella delle risorse statiche (
wwwroot/index.html).
- Gestire la sottodirectory in cui risiedono gli asset statici dell'app (
Uso di un oggetto personalizzato web.config
Per usare un file personalizzato web.config :
- Posizionare il file personalizzato
web.confignella cartella radice del progetto. - Pubblicare il progetto. Per altre informazioni, vedere Ospitare e distribuire ASP.NET Core Blazor.
- Posizionare il file personalizzato
web.confignella cartella radice del progetto. Per una soluzione ospitataBlazor WebAssembly, posizionare il file nella Server cartella del progetto. - Pubblicare il progetto. Per una soluzione ospitata Blazor WebAssembly, pubblica la soluzione dal progetto Server. Per altre informazioni, vedere Ospitare e distribuire ASP.NET Core Blazor.
Se la generazione o la trasformazione dell'SDK web.config durante la pubblicazione non sposta il file negli asset pubblicati nella publish cartella o modifica la configurazione personalizzata nel file personalizzato web.config , usare uno degli approcci seguenti in base alle esigenze per assumere il controllo completo del processo:
Se l'SDK non genera il file, ad esempio, in un'app autonoma Blazor WebAssembly in
/bin/Release/{TARGET FRAMEWORK}/publish/wwwrootobin/Release/{TARGET FRAMEWORK}/browser-wasm/publish, dove il{TARGET FRAMEWORK}segnaposto è il framework di destinazione, impostare la<PublishIISAssets>proprietà sutruenel file di progetto (.csproj). In genere per le app WebAssembly autonome, questa è l'unica impostazione necessaria per spostare un file personalizzatoweb.confige impedire la trasformazione del file da parte dell'SDK.<PropertyGroup> <PublishIISAssets>true</PublishIISAssets> </PropertyGroup>Disabilitare la trasformazione dell'SDK nel file di progetto
web.config(.csproj):<PropertyGroup> <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled> </PropertyGroup>Aggiungere una destinazione personalizzata al file di progetto (
.csproj) per spostare un file personalizzatoweb.config. Nell'esempio seguente il file personalizzatoweb.configviene inserito dallo sviluppatore nella radice del progetto. Se ilweb.configfile si trova altrove, specificare il percorso del file inSourceFiles. Nell'esempio seguente viene specificata la cartellapublishcon$(PublishDir), ma si può fornire un percorso aDestinationFoldercome posizione di output personalizzata.<Target Name="CopyWebConfig" AfterTargets="Publish"> <Copy SourceFiles="web.config" DestinationFolder="$(PublishDir)" /> </Target>
Installare il modulo di riscrittura URL
URL Rewrite Module è necessario per riscrivere gli URL. Il modulo non viene installato per impostazione predefinita e non è disponibile per l'installazione come funzionalità del servizio ruolo Server Web (IIS). Il modulo deve essere scaricato dal sito Web IIS. Usare l'Installazione guidata della piattaforma Web per installare il modulo:
- In locale, passare alla pagina di download di URL Rewrite Module. Per la versione inglese, selezionare WebPI per scaricare il programma di installazione WebPI. Per altre lingue, selezionare l'architettura appropriata per il server (x86 o x64) per scaricare il programma di installazione.
- Copiare il programma di installazione nel server. Eseguire il programma di installazione. Selezionare il pulsante Installa e accettare le condizioni di licenza. Al termine dell'installazione non è necessario un riavvio del server.
Configurare il sito Web
Impostare il percorso fisico del sito Web sulla cartella dell'app. La cartella contiene:
- File
web.configusato da IIS per configurare il sito Web, incluse le regole di reindirizzamento e i tipi di contenuto di file necessari. - Cartella degli asset statici dell'app.
Eseguire come sottoapplicazione IIS
Se un'app autonoma è ospitata come sotto-app IIS, eseguire una delle operazioni seguenti:
Disabilitare il gestore del modulo core ASP.NET ereditato.
Rimuovere il gestore dal file pubblicato Blazor dell'app aggiungendo una sezione
web.configalla sezione<handlers>del file:<handlers> <remove name="aspNetCore" /> </handlers>Disabilitare l'ereditarietà della sezione dell'app radice (padre)
<system.webServer>utilizzando un elemento<location>coninheritInChildApplicationsimpostato afalse:<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" ... /> </handlers> <aspNetCore ... /> </system.webServer> </location> </configuration>Annotazioni
La disabilitazione dell'ereditarietà della sezione radice (padre) dell'app
<system.webServer>è la configurazione predefinita per le app pubblicate tramite .NET SDK.
La rimozione del gestore o la disabilitazione dell'ereditarietà viene eseguita oltre alla configurazione del percorso di base dell'app. Impostare il percorso di base dell'app nel file dell'app index.html sull'alias IIS usato durante la configurazione dell'app secondaria in IIS.
Configurare il percorso di base dell'app seguendo le indicazioni riportate in ASP.NET Core percorso di base dell'appBlazor.
Compressione Brotli e Gzip
Questa sezione si applica solo alle app autonome Blazor WebAssembly .
Questa sezione si applica solo alle app autonome Blazor WebAssembly . Le app ospitate Blazor usano un file di app web.config core ASP.NET predefinito, non il file collegato in questa sezione.
IIS può essere configurato tramite web.config per servire risorse compresse Blazor con Brotli o Gzip per app autonome Blazor WebAssembly. Per un file di configurazione di esempio, vedere web.config.
Potrebbe essere necessaria una configurazione aggiuntiva del file di esempio web.config negli scenari seguenti:
- La specifica dell'app richiede uno dei seguenti elementi:
- Gestione di file compressi non configurati dal file di esempio
web.config. - Gestione di file compressi configurati dal file di esempio
web.configin un formato non compresso.
- Gestione di file compressi non configurati dal file di esempio
- La configurazione IIS del server ,ad esempio ,
applicationHost.configfornisce le impostazioni predefinite iis a livello di server. A seconda della configurazione a livello di server, l'app potrebbe richiedere una configurazione IIS diversa da quella contenuta nel file di esempioweb.config.
Per altre informazioni sui file personalizzati web.config , vedere la sezione Uso di un file personalizzato web.config .
Risoluzione dei problemi
Se si riceve un errore interno del server 500 e Gestione IIS genera errori durante il tentativo di accedere alla configurazione del sito Web, verificare che sia installato URL Rewrite Module. Quando il modulo non è installato, il web.config file non può essere analizzato da IIS. Ciò impedisce a Gestione IIS di caricare la configurazione del sito Web e al sito Web di fornire i file statici di Blazor.
Per altre informazioni sulla risoluzione dei problemi relativi alle distribuzioni in IIS, vedere Risolvere i problemi di ASP.NET Core nel servizio app Azure e IIS.