Distribuzione di un'applicazione Web ASP.NET con SQL Server Compact tramite Visual Studio o Visual Web Developer: Distribuzione di un aggiornamento Code-Only - 8 di 12
di Tom Dykstra
Scaricare il progetto iniziale
Questa serie di esercitazioni illustra come distribuire (pubblicare) un progetto di applicazione Web ASP.NET che include un database SQL Server Compact usando Visual Studio 2012 RC o Visual Studio Express 2012 RC per Web. È anche possibile usare Visual Studio 2010 se si installa l'aggiornamento di pubblicazione Web. Per un'introduzione alla serie, vedere la prima esercitazione della serie.
Per un'esercitazione che illustra le funzionalità di distribuzione introdotte dopo la versione RC di Visual Studio 2012, illustra come distribuire edizioni SQL Server diverse da SQL Server Compact e illustra come eseguire la distribuzione in Servizio app di Azure App Web, vedere ASP.NET distribuzione Web con Visual Studio.
Panoramica
Dopo la distribuzione iniziale, il lavoro di gestione e sviluppo del sito Web continua e prima di molto si vuole distribuire un aggiornamento. Questa esercitazione illustra il processo di distribuzione di un aggiornamento nel codice dell'applicazione. Questo aggiornamento non comporta una modifica del database; Nell'esercitazione successiva verranno illustrate le differenze tra la distribuzione di una modifica del database.
Promemoria: se viene visualizzato un messaggio di errore o qualcosa che non funziona durante l'esercitazione, assicurarsi di controllare la pagina di risoluzione dei problemi.
Apportare una modifica al codice
Come semplice esempio di aggiornamento dell'applicazione, si aggiungerà alla pagina Instructors un elenco di corsi insegnato dall'insegnante selezionato.
Se si esegue la pagina Instructors , si noterà che nella griglia sono presenti collegamenti Select , ma non fanno altro che rendere grigio lo sfondo della riga.
A questo punto si aggiungerà il codice che viene eseguito quando si fa clic sul collegamento Seleziona e viene visualizzato un elenco di corsi tenuti dall'insegnante selezionato.
In Instructors.aspx aggiungere il markup seguente subito dopo il controllo ErrorMessageLabelLabel
:
<h3>Courses Taught</h3>
<asp:ObjectDataSource ID="CoursesObjectDataSource" runat="server" TypeName="ContosoUniversity.BLL.SchoolBL"
DataObjectTypeName="ContosoUniversity.DAL.Course" SelectMethod="GetCoursesByInstructor">
<SelectParameters>
<asp:ControlParameter ControlID="InstructorsGridView" Name="PersonID" PropertyName="SelectedDataKey.Value"
Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:GridView ID="CoursesGridView" runat="server" DataSourceID="CoursesObjectDataSource"
AllowSorting="True" AutoGenerateColumns="False" SelectedRowStyle-BackColor="LightGray"
DataKeyNames="CourseID">
<EmptyDataTemplate>
<p>No courses found.</p>
</EmptyDataTemplate>
<Columns>
<asp:BoundField DataField="CourseID" HeaderText="ID" ReadOnly="True" SortExpression="CourseID" />
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
<asp:TemplateField HeaderText="Department" SortExpression="DepartmentID">
<ItemTemplate>
<asp:Label ID="GridViewDepartmentLabel" runat="server" Text='<%# Eval("Department.Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Eseguire la pagina e selezionare un insegnante. Viene visualizzato un elenco di corsi insegnato da tale insegnante.
Distribuzione dell'aggiornamento del codice nell'ambiente di test
La distribuzione nell'ambiente di test è una semplice questione di eseguire di nuovo la pubblicazione con un clic. Per semplificare questo processo, è possibile usare la barra degli strumenti Web Con un clic su Pubblica .
Scegliere Barre degli strumenti dal menu Visualizza e quindi selezionare Web Con un clic su Pubblica.
In Esplora soluzioni selezionare il progetto ContosoUniversity.
la barra degli strumenti Pubblica con un clic sul Web , scegliere il profilo di pubblicazione test e quindi fare clic su Pubblica Web (l'icona con frecce che puntano a sinistra e a destra).
Visual Studio distribuisce l'applicazione aggiornata e il browser si apre automaticamente alla home page. Eseguire la pagina Instructors e selezionare un insegnante per verificare che l'aggiornamento sia stato distribuito correttamente.
In genere si eseguirebbero anche test di regressione, ovvero testare il resto del sito per assicurarsi che la nuova modifica non interrompa alcuna funzionalità esistente. Tuttavia, per questa esercitazione si ignorerà questo passaggio e si procederà alla distribuzione dell'aggiornamento nell'ambiente di produzione.
Prevenzione della ridistribuzione dello stato iniziale del database nell'ambiente di produzione
In un'applicazione reale, gli utenti interagiscono con il sito di produzione dopo la distribuzione iniziale e i database vengono popolati con dati attivi. Pertanto, non si vuole ridistribuire il database di appartenenza nello stato iniziale, che cancella tutti i dati in tempo reale. Poiché SQL Server Compact database sono file nella cartella App_Data, è necessario impedire questa modifica modificando le impostazioni di distribuzione in modo che i file nella cartella App_Data non vengano distribuiti.
Aprire la finestra Proprietà progetto per il progetto ContosoUniversity e selezionare la scheda Web Pacchetto/Pubblicazione. Assicurarsi che nella casella a discesa Configurazione sia selezionata l'opzione Active (Release) o Release (Versione), selezionare Escludi file dalla cartella App_Data.
Nel caso in cui si decida di distribuire una build di debug in futuro, è consigliabile apportare la stessa modifica per la configurazione della compilazione di debug: modificare Configurazione in Debug e quindi selezionare Escludi file dalla cartella App_Data.
Salvare e chiudere la scheda Web Pacchetto/Pubblicazione .
Nota
Importante
Assicurarsi di non avere l'opzione Rimuovi file aggiuntivi nella destinazione selezionata nei profili di pubblicazione. Se si seleziona questa opzione, il processo di distribuzione eliminerà i database presenti in App_Data nel sito distribuito e eliminerà la cartella App_Data stessa.
Impedire l'accesso utente al sito di produzione durante l'aggiornamento
La modifica che si sta distribuendo è ora una semplice modifica a una singola pagina. Tuttavia, a volte si distribuiscono modifiche più grandi e in questo caso il sito può comportarsi in modo strano se un utente richiede una pagina prima del completamento della distribuzione. Per evitare questo problema, è possibile usare un file diapp_offline.htm . Quando si inserisce un file denominato app_offline.htm nella cartella radice dell'applicazione, IIS visualizza automaticamente tale file anziché eseguire l'applicazione. Per evitare l'accesso durante la distribuzione, inserire app_offline.htm nella cartella radice, eseguire il processo di distribuzione e quindi rimuovere app_offline.htm.
In Esplora soluzioni fare clic con il pulsante destro del mouse sulla soluzione (non uno dei progetti) e scegliere Nuova cartella soluzione.
Assegnare alla cartella il nome SolutionFiles.
Nella nuova cartella creare una pagina HTML denominata app_offline.htm. Sostituire il contenuto esistente con il markup seguente:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Contoso University - Under Construction</title>
</head>
<body>
<h1>Contoso University</h1>
<h2>Under Construction</h2>
<p>The Contoso University site is temporarily unavailable while we upgrade it. Please try again later.</p>
</body>
</html>
È possibile copiare il file app_offline.htm nel sito usando una connessione FTP o l'utilità Gestione file nel pannello di controllo del provider di hosting. Per questa esercitazione si userà Gestione file.
Aprire il pannello di controllo e selezionare Gestione file come è stato fatto nell'esercitazione Distribuzione nell'ambiente di produzione . Selezionare contosouniversity.com e quindi wwwroot per accedere alla cartella radice dell'applicazione e quindi fare clic su Carica.
Nella finestra di dialogo Carica file selezionare il fileapp_offline.htm e quindi fare clic su Carica.
Passare all'URL del proprio sito. Si noterà che la pagina app_offline.htm è ora visualizzata invece della home page.
A questo momento è possibile eseguire la distribuzione nell'ambiente di produzione.
Distribuzione dell'aggiornamento del codice nell'ambiente di produzione
Nella barra degli strumenti Pubblica con un clic sul Web scegliere il profilo di pubblicazione produzione e quindi fare clic su Pubblica Web.
Visual Studio distribuisce l'applicazione aggiornata e apre il browser alla home page del sito. Viene visualizzato il file app_offline.htm . Prima di poter verificare la corretta distribuzione, è necessario rimuovere il file app_offline.htm .
Tornare all'applicazione File Manager nel pannello di controllo. Selezionare contosouniversity.com e wwwroot, selezionare app_offline.htme quindi fare clic su Elimina.
Nel browser aprire la pagina Instructors nel sito pubblico e selezionare un insegnante per verificare che l'aggiornamento sia stato distribuito correttamente.
È stato ora distribuito un aggiornamento dell'applicazione che non ha comportato una modifica del database. L'esercitazione successiva illustra come distribuire una modifica del database.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per