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.
Servizio app di Azure offre un servizio di hosting Web con scalabilità elevata e funzioni di auto-correzione. Questa esercitazione illustra come distribuire un'app ASP.NET basata sui dati nel servizio app e connetterla al database SQL di Azure.
Al termine dell'esercitazione, è disponibile un'app ASP.NET connessa a un database SQL di Azure in esecuzione in Azure. L'esempio seguente mostra l'interfaccia dell'app.
In questa esercitazione, farai:
- Pubblicare un'app Web guidata dai dati in Azure.
- Creare un database SQL di Azure per contenere i dati dell'app.
- Connettere l'app ASP.NET al database SQL di Azure.
- Configurare un'identità gestita e l'autenticazione di Microsoft Entra ID per la connessione al database.
- Aggiornare il modello di dati e ridistribuire l'app.
- Trasmettere i log delle applicazioni da Azure a Visual Studio.
Prerequisiti
- Se non si ha un account Azure, creare un account gratuito prima di iniziare.
- Installare Visual Studio 2022 con i carichi di lavoro Sviluppo ASP.NET e Web e Sviluppo di Azure.
- È possibile aggiungere i carichi di lavoro a un'installazione di Visual Studio esistente selezionando Recupera strumenti e funzionalità nel menu Strumenti di Visual Studio.
- Assicurarsi di avere gli aggiornamenti più recenti per Visual Studio 2022 selezionando La Guida>Controllare la disponibilità di aggiornamenti e installare la versione più recente, se necessario.
Creare ed eseguire l'app
Il progetto di esempio contiene un'app di base ASP.NET MVC create-read-update-delete (CRUD) che usa Entity Framework Code First.
Scaricare il progetto di esempio ed estrarre il file dotnet-sqldb-tutorial-master.zip .
Aprire il file dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln estratto in Visual Studio.
Premere F5 per eseguire l'app e aprirla nel browser predefinito.
Note
Se necessario, installare eventuali pacchetti NuGet mancanti.
Nell'app selezionare Crea Nuovo e creare un paio di elementito-do.
Testare i collegamenti Modifica, Dettagli ed Elimina.
Pubblicare l'app in Azure
Per pubblicare l'app in Azure, creare e configurare un profilo di pubblicazione con un servizio app di Azure e un piano di servizio app per ospitare l'app. Si crea quindi un database SQL Server di Azure e SQL di Azure per contenere i dati dell'app e si configura un contesto di database per connettere l'app al database.
In Esplora soluzioni di Visual Studio fare clic con il pulsante destro del mouse sul progetto DotNetAppSqlDb e scegliere Pubblica.
Nella schermata Pubblica selezionare Azure come destinazione e selezionare Avanti.
Nella schermata successiva verificare che servizio app di Azure (Windows) sia selezionato e selezionare Avanti.
Accedere e aggiungere un servizio app di Azure
Nella schermata Pubblica successiva, accedi al tuo account Microsoft e alla sottoscrizione che vuoi usare.
Accanto a Servizio app selezionare Crea nuovo.
Configurare il servizio app di Azure
Nella schermata Servizio app (Windows) configurare il nome del servizio app, il gruppo di risorse e il piano di hosting.
In Nome è possibile mantenere il nome dell'app Web generata o modificarlo in un altro nome con caratteri
a-z,0-9e-. Il nome dell'app Web deve essere univoco in tutte le app di Azure.Accanto a Gruppo di risorse selezionare Nuovo e assegnare al gruppo di risorse il nome myResourceGroup.
Un gruppo di risorse è un contenitore logico in cui vengono distribuite e gestite risorse di Azure come app Web, database e account di archiviazione. Ad esempio, si può scegliere in un secondo momento di eliminare l'intero gruppo di risorse in un unico semplice passaggio.
Accanto a Piano di hosting selezionare Nuovo.
Un piano di servizio app specifica la località, le dimensioni e le funzionalità della server farm Web che ospita l'app. Quando si ospitano più app, è possibile limitare i costi configurando le app Web in modo che condividano un singolo piano di servizio app.
I piani di servizio app definiscono:
- Area (ad esempio Europa settentrionale, Stati Uniti orientali o Asia sud-orientale)
- Dimensione dell'istanza (Small, Medium o Large)
- Numero di scala (da 1 a 20 istanze)
- SKU (Gratuito, Condiviso, Basic, Standard o Premium)
Completare la schermata Piano di hosting e quindi selezionare OK.
Impostazione Valore consigliato Per ulteriori informazioni Piano di servizio app myAppServicePlan Piani del servizio app Ubicazione Stati Uniti orientali Aree di Azure Dimensione Gratuito Piani tariffari
Nella schermata Servizio app (Windows) selezionare Crea e attendere la creazione delle risorse di Azure.
La schermata Pubblica mostra le risorse configurate. Selezionare Fine e quindi fare clic su Chiudi.
Creare un server e un database
Prima di poter creare un database, è necessario un server SQL logico. Un server SQL logico è un costrutto logico che contiene un gruppo di database gestiti come gruppo.
Nella schermata Pubblica per l'app DotNetAppSqlDb, nella sezione Dipendenze del servizio fare clic sui tre puntini ... accanto a Database di SQL Server, quindi fare clic su Connetti.
Note
Assicurarsi di configurare il database SQL dalla scheda Pubblica , non dalla scheda Servizi connessi .
Nella schermata Connetti alle dipendenze selezionare Database SQL di Azure e quindi avanti.
Nella schermata Configura database SQL di Azure selezionare Crea nuovo.
Nella schermata Database SQL di Azure , accanto al server di database, selezionare Nuovo.
Sostituire il nome del server con quello desiderato. Il nome del server deve essere univoco in tutti i server in Azure SQL.
Seleziona OK.
Nella schermata Database SQL di Azure mantenere il nome del database generato predefinito. Selezionare Crea e attendere che vengano create le risorse del database.
Quando vengono create le risorse del database, selezionare Avanti.
Nella schermata Connetti al database SQL di Azure selezionare Fine.
Note
Se invece vengono visualizzati i file dei segreti utente locali , assicurarsi di aver usato la pagina Pubblica , non la pagina Servizi connessi , per configurare il database SQL.
La connessione al database SQL di Azure è ora configurata per usare l'identità gestita per i servizi di Azure, un metodo sicuro per connettere l'app alle risorse di Azure che non usano segreti o password. È ora necessario impostare le autorizzazioni appropriate per l'utente SQL corrispondente a questa identità gestita per il funzionamento della connessione.
Configurare identità gestita
Quando la creazione guidata del database SQL di Azure configura il server SQL di Azure con un'identità gestita e l'autenticazione predefinita entra ID, l'account Entra ID è stato aggiunto come amministratore di Azure SQL. Se si è connessi allo stesso account in Visual Studio, è possibile usare la stessa stringa di connessione per connettersi al database sia in Visual Studio che in Azure.
Nel menu Strumenti selezionare Gestione pacchetti NuGet>Console di Gestione pacchetti.
Nella console di Gestione pacchetti installare i pacchetti seguenti:
Install-Package Microsoft.Data.SqlClient Install-Package Microsoft.EntityFramework.SqlServerIn una riga di comando di PowerShell eseguire il comando seguente per accedere al database SQL, sostituendo
<server-name>con il nome del server e<entra-id-user>con il nome utente di Microsoft Entra usato per configurare il database in Visual Studio. L'utente Entra ha accesso amministratore al server di database per impostazione predefinita.sqlcmd -S <servername>.database.windows.net -d DotNetAppSqlDb_db -U <entra-id-user> -G -l 30Seguire le istruzioni per accedere.
Al prompt di SQL eseguire i comandi seguenti per concedere le autorizzazioni minime necessarie per l'app, sostituendo
<app-name>con il nome dell'app.CREATE USER [<app-name>] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [<app-name>]; ALTER ROLE db_datawriter ADD MEMBER [<app-name>]; ALTER ROLE db_ddladmin ADD MEMBER [<app-name>]; GO
Aggiornare il contesto del database
L'app usa un contesto di database per connettersi al database a cui viene fatto riferimento nel file Models/MyDatabaseContext.cs . In questa sezione si aggiorna il codice in modo da fare riferimento al provider SQL Server di Entity Framework 6, che dipende dal provider di ADO.NET Microsoft.Data.SqlClient moderno.
Il provider Entity Framework 6 sostituisce il provider SQL Server predefinito System.Data.SqlClient e include il supporto per i metodi di autenticazione di Microsoft Entra ID. Per altre informazioni, vedere Microsoft.EntityFramework.SqlServer}.
[DbConfigurationType(typeof(MicrosoftSqlDbConfiguration))] funziona localmente per usare Microsoft.Data.SqlClient per il contesto del database, ma poiché System.Data.SqlClient è hardcoded come provider nel Servizio app di Azure, è necessario estendere MicrosoftSqlDbConfiguration per reindirizzare i riferimenti a System.Data.SqlClient a Microsoft.Data.SqlClient.
In web.config rimuovere la sezione
entityFramework/providers/providere la riga:<provider invariantName="System.Data.SqlClient" .../>.In Models/MyDatabaseContext.cs aggiungere la classe seguente:
public class AppServiceConfiguration : MicrosoftSqlDbConfiguration { public AppServiceConfiguration() { SetProviderFactory("System.Data.SqlClient", Microsoft.Data.SqlClient.SqlClientFactory.Instance); SetProviderServices("System.Data.SqlClient", MicrosoftSqlProviderServices.Instance); SetExecutionStrategy("System.Data.SqlClient", () => new MicrosoftSqlAzureExecutionStrategy()); } }Aggiungere l'attributo seguente alla dichiarazione di
MyDatabaseContextclasse:[DbConfigurationType(typeof(AppServiceConfiguration))]
Distribuire l'app ASP.NET
Nella parte superiore della scheda Pubblica selezionare Pubblica. L'app ASP.NET viene distribuita in Azure e il browser predefinito viene avviato all'URL dell'app distribuita.
Per testare l'app, aggiungere alcuni elementi to-do.
Congratulazioni! L'applicazione ASP.NET basata sui dati è in esecuzione nel Servizio app di Azure.
Usare Esplora oggetti di SQL Server
È possibile usare Esplora oggetti di SQL Server di Visual Studio per esplorare e gestire facilmente il database SQL di Azure. In Esplora oggetti di SQL Server è possibile eseguire operazioni di database più comuni, ad esempio l'esecuzione di query o la creazione di tabelle, viste e stored procedure.
Consentire la connessione client dal computer
Per impostazione predefinita, il server di Azure consente le connessioni ai relativi database solo dai servizi di Azure, ad esempio l'app di Azure. Il nuovo database ha aperto il firewall per l'app del servizio che hai creato.
Per accedere al database dal computer locale, ad esempio da Visual Studio, il server di Azure deve aprire il firewall per consentire l'accesso per l'indirizzo IP pubblico del computer.
Se viene richiesto di aggiungere l'accesso per il client locale, assicurarsi di selezionare l'opzione Consenti l'indirizzo IP pubblico del computer. Questa opzione crea una regola del firewall per consentire l'indirizzo IP pubblico del computer locale. La finestra di dialogo è già popolata con l'indirizzo IP corrente del computer.
Se non viene richiesto di aggiungere l'accesso per il computer locale, è possibile passare al database SQL di Azure nel portale di Azure e selezionare Imposta firewall server nella barra dei menu in alto. Nella pagina Rete in Regole del firewall selezionare l'opzione Aggiungi indirizzo IPv4 client.
Note
Se il provider di servizi Internet cambia l'indirizzo IP pubblico, è necessario riconfigurare il firewall per accedere nuovamente al database di Azure.
Connettersi al database SQL di Azure in locale
Dal menu Visualizza selezionare Esplora oggetti di SQL Server.
Nella parte superiore della finestra Esplora oggetti di SQL Server selezionare l'icona aggiungi SQL Server.
Nella schermata Connetti la connessione viene visualizzata sotto il nodo Azure . Completare le informazioni relative a Nome server, Nome utente, Password e Nome database e selezionare Connetti.
Al termine della configurazione della connessione per l'istanza del database SQL, il database viene visualizzato in Esplora oggetti di SQL Server. Espandi <il nome della connessione>>Database><il nome del tuo database>> per visualizzare i dati.
Espandere Tabelle, fare clic con il pulsante destro del mouse sulla
ToDoestabella e selezionare Visualizza dati per interagire con i dati del database.
Aggiornare l'app con Migrazioni Code First
È possibile usare strumenti familiari in Visual Studio per aggiornare il database e l'app in Azure. In questo passaggio, si utilizzano le Migrazioni Code First in Entity Framework per modificare lo schema del database e pubblicare la modifica su Azure.
Per altre informazioni sull'uso di Migrazioni Code First di Entity Framework, vedere Getting Started with Entity Framework 6 Code First using MVC 5 (Introduzione a Code First di Entity Framework 6 con MVC 5).
Aggiornare il modello di dati
Aprire Models\Todo.cs nell'editor di codice. Aggiungere la proprietà seguente alla classe ToDo:
public bool Done { get; set; }
Eseguire Migrazioni Code First in locale
Eseguire alcuni comandi per eseguire gli aggiornamenti del database locale.
Nel menu Strumenti selezionare Gestione pacchetti NuGet>Console di Gestione pacchetti.
Nella finestra Console di Gestione pacchetti abilitare le migrazioni Code First:
Enable-MigrationsAggiungere una migrazione:
Add-Migration AddPropertyAggiornare il database locale:
Update-DatabasePremere CTRL+F5 per eseguire l'app. Testare i collegamenti Modifica, Dettagli e Crea.
Se l'applicazione viene caricata senza errori, le migrazioni Code First hanno avuto esito positivo. La pagina, tuttavia, può sembrare sempre uguale perché la logica dell'applicazione non usa ancora la nuova proprietà.
Usare la nuova proprietà
Apportare alcune modifiche nel codice per visualizzare la Done proprietà in azione. Per questo tutorial, cambi solo le viste Index e Create per usare la nuova proprietà.
Aprire Controllers\TodosController.cs e nel metodo alla
Create()riga 52 aggiungereDoneall'elenco delle proprietà nell'attributoBind. La firma delCreate()metodo dovrebbe essere simile al codice seguente:public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)Aprire Views\Todos\Create.cshtml e nel codice Razor prendere nota dell'elemento
<div class="form-group">che usamodel.Descriptione dell'elemento<div class="form-group">che usamodel.CreatedDate.Dopo questi due elementi, aggiungere l'elemento seguente
<div class="form-group">che usamodel.Done:<div class="form-group"> @Html.LabelFor(model => model.Done, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> <div class="checkbox"> @Html.EditorFor(model => model.Done) @Html.ValidationMessageFor(model => model.Done, "", new { @class = "text-danger" }) </div> </div> </div>Aprire Views\Todos\Index.cshtml e appena sopra l'elemento vuoto
<th></th>aggiungere il codice Razor seguente:<th> @Html.DisplayNameFor(model => model.Done) </th>Sopra l'elemento
<td>che contiene iHtml.ActionLink()metodi helper, aggiungere un altro<td>elemento con il codice Razor seguente:<td> @Html.DisplayFor(modelItem => item.Done) </td>Salvare tutti i file e premere CTRL+F5 per eseguire l'app.
Nell'app aggiungere un elemento to-do e selezionare Fine. L'elemento dovrebbe essere visualizzato nella home page come elemento completato. La visualizzazione Modifica non mostra il campo Fine perché la visualizzazione Modifica non è stata modificata.
Abilitare Migrazioni Code First in Azure
Ora che la modifica del codice funziona, inclusa la migrazione del database, è possibile pubblicarla nell'app di Azure e aggiornare anche il database SQL di Azure con Migrazioni Code First.
In Esplora soluzioni di Visual Studio fare clic con il pulsante destro del mouse sul progetto e scegliere Pubblica.
Selezionare Altre azioni>Modifica per aprire le impostazioni di pubblicazione.
Nell'elenco a discesa MyDatabaseContext selezionare la connessione al database SQL di Azure.
Selezionare Esegui migrazioni Code First (esecuzioni all'avvio dell'applicazione) e quindi selezionare Salva.
Pubblicare le modifiche
Dopo aver abilitato Migrazioni Code First nell'app Azure pubblicare le modifiche al codice.
Nella pagina Pubblica selezionare Pubblica.
Nell'app Web pubblicata, provare ad aggiungere di nuovo altri elementi to-do e selezionare Fine e dovrebbero essere visualizzati nella home page come elementi completati.
Tutte le attività esistenti rimangono visualizzate. Quando si ripubblica l'applicazione ASP.NET, i dati esistenti nel database SQL di Azure non andranno persi. Inoltre, le migrazioni Code First modificano solo lo schema dei dati e lasciano intatti i dati.
Eseguire lo streaming dei log delle applicazioni
È possibile eseguire lo streaming dei messaggi di traccia direttamente dall'app Azure in Visual Studio.
Aprire Controllers\TodosController.cs e notare che ogni azione inizia con un Trace.WriteLine() metodo. Questo codice illustra come aggiungere messaggi di traccia all'app Azure.
Abilitare lo streaming dei log
Nella pagina di Visual Studio Pubblica, scorrere verso il basso fino alla sezione Hosting.
Selezionare i puntini di sospensione ... in alto a destra e successivamente Visualizza log di streaming.
Lo streaming dei log viene eseguito nella finestra Output.
Non vengono ancora visualizzati messaggi di traccia, perché quando si seleziona Visualizza log di streaming, l'app di Azure imposta il livello di traccia su
Error, che registra solo gli eventi di errore usando ilTrace.TraceError()metodo .
Modificare i livelli di traccia
Per modificare i livelli di traccia in modo da restituire altri messaggi di traccia, nella sezione Hosting della pagina Pubblica selezionare ... in alto a destra e quindi selezionare Apri nel portale di Azure.
Nella pagina del portale di Azure per l'app, selezionare Log del servizio dell'app in Monitoraggio nel menu a sinistra.
In Application Logging (file system)selezionare Dettagliato in Livello, quindi selezionare Salva.
Suggerimento
È possibile provare i diversi livelli di traccia per verificare i tipi di messaggi visualizzati per ogni livello. Ad esempio, il livello Informazioni include tutti i log creati da
Trace.TraceInformation(),Trace.TraceWarning()eTrace.TraceError(), ma non i log creati daTrace.WriteLine().Nel browser, torna all'elenco dell'applicazione Azure to-do e naviga all'interno dell'app. I messaggi di traccia come gli esempi seguenti ora vengono trasmessi alla finestra Output in Visual Studio.
Application:2025-05-12T23:41:11 PID[17108] Verbose GET /Todos/Index Application:2025-05-12T23:42:04 PID[17108] Verbose GET /Todos/Index Application:2025-05-12T23:42:06 PID[17108] Verbose POST /Todos/Create Application:2025-05-12T23:42:07 PID[17108] Verbose GET /Todos/Index
Arrestare lo streaming dei log
Per arrestare il servizio di streaming dei log, selezionare l'icona Arresta monitoraggio nella finestra Output .
Pulire le risorse
Nei passaggi precedenti sono state create risorse di Azure in un gruppo di risorse. Se non si prevede di aver bisogno di queste risorse in futuro, è possibile eliminarle eliminando il gruppo di risorse.
- Dalla pagina Panoramica dell'app Web nel portale di Azure selezionare il collegamento myResourceGroup in Gruppo di risorse.
- Nella pagina del gruppo di risorse assicurarsi che le risorse elencate siano quelle da eliminare.
- Selezionare Elimina gruppo di risorse, digitare myResourceGroup nella casella di testo e quindi selezionare Elimina.
- Confermare di nuovo selezionando Elimina.
Contenuti correlati
- Configurare un'app ASP.NET per Servizio app di Azure
- Guida introduttiva: Iniziare a usare l'analisi dei costi
Passare all'esercitazione successiva per informazioni su come usare l'identità gestita per migliorare la sicurezza delle connessioni al database SQL di Azure.