Condividi tramite


ASP.NET distribuzione Web con Visual Studio: Distribuzione in test

di Tom Dykstra

Questa serie di esercitazioni illustra come distribuire (pubblicare) un'applicazione Web ASP.NET in app Azure Service App Web o in un provider di hosting di terze parti usando Visual Studio 2017. Per informazioni sulla serie, vedere la prima esercitazione della serie.

Per una versione corrente della distribuzione in Azure, vedere Creare un'app Web ASP.NET Core in Azure.

Panoramica

In questa esercitazione si distribuirà un'applicazione Web ASP.NET in Internet Information Server (IIS) nel computer locale.

In genere, quando si sviluppa un'applicazione, viene eseguita e testata in Visual Studio. Per impostazione predefinita, i progetti di applicazioni Web in Visual Studio 2017 usano IIS Express come server Web di sviluppo. IIS Express si comporta come IIS completo rispetto al server di sviluppo di Visual Studio (noto anche come Cassini), usato per impostazione predefinita da Visual Studio 2017. Ma nessuno dei due server Web di sviluppo funziona esattamente come IIS. Di conseguenza, un'app può essere eseguita e sottoposta a test correttamente in Visual Studio, ma non riesce quando viene distribuita in IIS.

È possibile testare in modo affidabile l'applicazione in due modi:

  1. Distribuire l'applicazione in IIS nel computer di sviluppo usando lo stesso processo che verrà usato in un secondo momento per distribuirlo nell'ambiente di produzione.

    È possibile configurare Visual Studio per l'uso di IIS quando si esegue un progetto Web, ma questo non testerebbe il processo di distribuzione. Questo metodo convalida il processo di distribuzione e che l'applicazione viene eseguita correttamente in IIS.

  2. Distribuire l'applicazione in un ambiente di test simile all'ambiente di produzione.

    L'ambiente di produzione per queste esercitazioni è App Web nel servizio app Azure. L'ambiente di test ideale è un'app Web aggiuntiva creata nel servizio di Azure. Anche se sarebbe configurato allo stesso modo di un'app Web di produzione, è possibile usarlo solo per i test.

L'opzione 2 è il modo più affidabile per testare. Se si usa l'opzione 2, non è necessario usare necessariamente l'opzione 1. Tuttavia, se si esegue la distribuzione in un provider di hosting di terze parti, l'opzione 2 potrebbe non essere fattibile o potrebbe essere costosa, quindi questa serie di esercitazioni mostra entrambi i metodi. Le linee guida per l'opzione 2 sono disponibili nell'esercitazione Distribuzione nell'ambiente di produzione.

Per altre informazioni sull'uso di server Web in Visual Studio, vedere Server Web in Visual Studio per ASP.NET progetti Web.

Promemoria: se viene visualizzato un messaggio di errore o qualcosa non funziona durante l'esercitazione, assicurarsi di controllare la pagina di risoluzione dei problemi.

Scaricare il progetto iniziale di Contoso University

Scaricare e installare la soluzione iniziale e il progetto di Visual Studio di Contoso University. Questa soluzione contiene l'esercitazione completata.

Scaricare il progetto iniziale

Installare IIS

Per eseguire la distribuzione in IIS nel computer di sviluppo, verificare che IIS e Distribuzione Web siano installati. Per impostazione predefinita, Visual Studio installa Distribuzione Web, ma IIS non è incluso nella configurazione predefinita di Windows 10, Windows 8 o Windows 7. Se IIS è già stato installato e il pool di applicazioni predefinito è già impostato su .NET 4, passare alla sezione successiva.

  1. È consigliabile usare Il programma di installazione della piattaforma Web (WPI) per installare IIS e Distribuzione Web. WPI installa una configurazione IIS consigliata che include i prerequisiti iis e distribuzione Web, se necessario.

    Se IIS, Distribuzione Web o uno dei relativi componenti necessari è già installato, WPI installa solo ciò che manca.

    • Usare il programma di installazione della piattaforma Web per installare IIS e Distribuzione Web:

      Installare IIS con WPI

      Installare Distribuzione Web con WPI

      Verranno visualizzati messaggi che indicano che IIS 7 verrà installato. Il collegamento funziona per IIS 8 in Windows 8; ma per Windows 8 e versioni successive, seguire questa procedura per assicurarsi che ASP.NET 4.7 sia installato:

    • Aprire Pannello di controllo> Programmi>e funzionalità>Attivare o disattivare le funzionalità di Windows.

    • Espandere Internet Information Services, Servizi Web internazionali e Funzionalità di sviluppo di applicazioni.

    • Verificare che ASP.NET 4.7 sia selezionato.

      Selezionare ASP.NET 4.7

    • Verificare che sia selezionata l'opzione Servizi Web globale e Console di gestione IIS. Viene installato IIS e Gestione IIS.

      Selezionare Servizi Web a livello mondiale

    • Seleziona OK. Vengono visualizzati i messaggi della finestra di dialogo che indicano che è in esecuzione l'installazione.

Dopo l'installazione di IIS, eseguire Gestione IIS per assicurarsi che .NET Framework versione 4 sia assegnato al pool di applicazioni predefinito.

  1. Premere WINDOWS+R per aprire la finestra di dialogo Esegui .

    (In Windows 8 o versione successiva immettere "esegui" nel Pagina iniziale. In Windows 7 selezionare Esegui dal menu Start. Se Esegui non è disponibile nel menu Start, fare clic con il pulsante destro del mouse sulla barra delle applicazioni, scegliere Proprietà, selezionare la scheda Menu Start, selezionare Personalizza e selezionare Esegui comando.

  2. Immettere "inetmgr" e selezionare OK.

  3. Nel riquadro Connessioni espandere il nodo server e selezionare Pool di applicazioni. Nel riquadro Pool di applicazioni se DefaultAppPool è assegnato a .NET Framework versione 4, come illustrato nella figura seguente, passare alla sezione successiva.

    Inetmgr_showing_4.0_app_pools

  4. Se vengono visualizzati solo due pool di applicazioni e entrambi sono impostati su .NET Framework 2.0, installare ASP.NET 4 in IIS.

    Per Windows 8 o versione successiva, vedere le istruzioni della sezione precedente per assicurarsi che ASP.NET 4.7 sia installato o vedere Come installare ASP.NET 4.5 in Windows 8 e Windows Server 2012. Per Windows 7, aprire una finestra del prompt dei comandi facendo clic con il pulsante destro del mouse sul prompt dei comandi nel menu Start di Windows e scegliendo Esegui come amministratore. Eseguire aspnet_regiis.exe per installare ASP.NET 4 in IIS usando i comandi seguenti. (Nei sistemi a 32 bit sostituire "Framework64" con "Framework".)

    cd %windir%\Microsoft.NET\Framework64\v4.0.30319
    aspnet_regiis.exe –i
    

    Questo comando crea nuovi pool di applicazioni per .NET Framework 4, ma il pool di applicazioni predefinito rimarrà impostato su 2.0. Si sta distribuendo un'applicazione destinata a .NET 4 nel pool di applicazioni, quindi modificare il pool di applicazioni in .NET 4.

  5. Se Gestione IIS è stato chiuso, eseguirlo di nuovo, espandere il nodo del server e selezionare Pool di applicazioni.

  6. Nel riquadro Pool di applicazioni selezionare DefaultAppPool. Nel riquadro Azioni selezionare Impostazioni di base.

    Inetmgr_selecting_Basic_Settings_for_app_pool

  7. Nella finestra di dialogo Modifica pool di applicazioni modificare la versione CLR .NET in .NET CLR v4.0.30319. Seleziona OK.

    Selecting_.NET_4_for_DefaultAppPool

A questo punto è possibile pubblicare un'applicazione Web in IIS. In primo luogo, tuttavia, creare database per i test.

Installare SQL Server Express

LocalDB non è progettato per funzionare in IIS, quindi l'ambiente di test deve avere INSTALLATO SQL Server Express. Se si usa Visual Studio 2010 SQL Server Express, per impostazione predefinita è già installato. Se si usa Visual Studio 2012 o versione successiva, installare SQL Server Express.

Per installare SQL Server Express, scaricarlo e installarlo dall'Area download: Microsoft SQL Server 2017 Express Edition.

Nella prima pagina del Centro installazione di SQL Server selezionare Nuova installazione autonoma di SQL Server o aggiungere funzionalità a un'installazione esistente e seguire le istruzioni che accettano le scelte predefinite. Nell'installazione guidata accettare le impostazioni predefinite. Per altre informazioni sulle opzioni di installazione, vedere Installare SQL Server dall'Installazione guidata (programma di installazione).

Creare database SQL Server Express per l'ambiente di test

L'applicazione Contoso University ha due database:

  1. Database di appartenenza
  2. Database dell'applicazione

È possibile distribuire questi database in due database separati o in un database singolo. La combinazione rende più semplici i join di database tra di essi.

Se si esegue la distribuzione in un provider di hosting di terze parti, il piano di hosting potrebbe anche fornire un motivo per combinarli. Ad esempio, il provider potrebbe addebitare più costi per più database o non consentire nemmeno più di un database.

In questa esercitazione si distribuiranno in due database nell'ambiente di test e in un database negli ambienti di staging e di produzione.

Dal menu Visualizza in Visual Studio selezionare Esplora server (Esplora database in Visual Web Developer). Fare clic con il pulsante destro del mouse su Connessioni dati e scegliere Crea nuovo database di SQL Server.

Selecting_Create_New_SQL_Server_Database

Nella finestra di dialogo Crea nuovo database DI SQL Server immettere ".\SQLExpress" nella casella Nome server e "aspnet-ContosoUniversity" nella casella Nuovo nome database. Seleziona OK.

Creare aspnet-ContosoUniversity

Seguire la stessa procedura per creare un nuovo database di SQL Server Express School denominato ContosoUniversity.

Esplora server mostra i due nuovi database.

Nuovi database in Esplora server

Creare uno script di concessione per i nuovi database

Quando l'applicazione viene eseguita in IIS nel computer di sviluppo, l'applicazione usa le credenziali del pool di applicazioni predefinito per accedere al database. Tuttavia, per impostazione predefinita, il pool di applicazioni non dispone dell'autorizzazione per aprire i database. Ciò significa che è necessario eseguire uno script per concedere tale autorizzazione. In questa sezione verrà creato lo script ed eseguito in un secondo momento per assicurarsi che l'applicazione possa aprire i database quando viene eseguito in IIS.

In un editor di testo copiare i comandi SQL seguenti in un nuovo file e salvarlo come Grant.sql.

IF NOT EXISTS (SELECT name FROM sys.server_principals WHERE name = 'IIS APPPOOL\DefaultAppPool')
BEGIN
    CREATE LOGIN [IIS APPPOOL\DefaultAppPool] 
      FROM WINDOWS WITH DEFAULT_DATABASE=[master], 
      DEFAULT_LANGUAGE=[us_english]
END
GO
CREATE USER [ContosoUniversityUser] 
  FOR LOGIN [IIS APPPOOL\DefaultAppPool]
GO
EXEC sp_addrolemember 'db_owner', 'ContosoUniversityUser'
GO

In Visual Studio aprire la soluzione Contoso University. Fare clic con il pulsante destro del mouse sulla soluzione (non uno dei progetti) e scegliere Aggiungi. Selezionare Elemento esistente, passare a Grant.sql e aprirlo.

Nota

Questo script è progettato per funzionare con SQL Server Express 2012 o versione successiva e con le impostazioni IIS in Windows 10, Windows 8 o Windows 7, come sono specificate in questa esercitazione. Se si usa una versione diversa di SQL Server o Windows o se si configura IIS nel computer in modo diverso, potrebbero essere necessarie modifiche a questo script. Per altre informazioni sugli script di SQL Server, vedere la documentazione online di SQL Server.

Nota

Nota sulla sicurezza Questo script concede db_owner all'utente le autorizzazioni che accedono al database in fase di esecuzione, ovvero ciò che si avrà nell'ambiente di produzione. In alcuni scenari, è possibile specificare un utente con autorizzazioni di aggiornamento completo dello schema del database solo per la distribuzione e specificare per il runtime un utente diverso che dispone delle autorizzazioni solo per la lettura e la scrittura di dati. Per altre informazioni, vedere Reviewing the Automatic Web.config Changes for Migrazioni Code First later in questa esercitazione.

Eseguire lo script di concessione nel database dell'applicazione

È possibile configurare il profilo di pubblicazione per eseguire lo script di concessione nel database di appartenenza durante la distribuzione perché tale distribuzione del database usa il provider dbDacFx. Non è possibile eseguire script durante la distribuzione di Migrazioni Code First, ovvero come si distribuisce il database dell'applicazione. Ciò significa che è necessario eseguire manualmente lo script prima della distribuzione nel database dell'applicazione.

  1. In Visual Studio aprire il file Grant.sql creato in precedenza.

  2. Selezionare Connetti.

    Pulsante Connetti

  3. Nella finestra di dialogo Connetti al server immettere .\SQLExpress come Nome server. Selezionare Connetti.

  4. Nell'elenco a discesa del database selezionare ContosoUniversity. Seleziona Execute.

    Nell'elenco a discesa del database selezionare ContosoUniversity. Selezionare Esegui.

L'identità del pool di applicazioni predefinita dispone ora di autorizzazioni sufficienti nel database dell'applicazione per Migrazioni Code First per creare le tabelle di database quando viene eseguita l'applicazione.

Eseguire la pubblicazione in IIS

Esistono diversi modi per eseguire la distribuzione in IIS usando Visual Studio e Distribuzione Web:

  • Usare Visual Studio con un clic su Pubblica.
  • Pubblicare dalla riga di comando.
  • Creare un pacchetto di distribuzione e installarlo con Gestione IIS. Il pacchetto ha un file .zip con tutti i file e i metadati necessari per installare un sito in IIS.
  • Creare un pacchetto di distribuzione e installarlo usando la riga di comando.

Il processo eseguito nelle esercitazioni precedenti per configurare Visual Studio per automatizzare le attività di distribuzione si applica a tutti questi metodi. In queste esercitazioni si useranno i primi due metodi. Per informazioni sull'uso dei pacchetti di distribuzione, vedere Distribuzione di un'applicazione Web creando e installando un pacchetto di distribuzione Web nella mappa del contenuto della distribuzione Web per Visual Studio e ASP.NET.

Prima della pubblicazione, assicurarsi di eseguire Visual Studio in modalità amministratore. Se non viene visualizzato (amministratore) nella barra del titolo, chiudere Visual Studio. Nella pagina iniziale di Windows 8 (o versioni successive) o nel menu Start di Windows 7 fare clic con il pulsante destro del mouse sull'icona di Visual Studio e scegliere Esegui come amministratore. La modalità amministratore è necessaria solo per la pubblicazione quando si esegue la pubblicazione in IIS nel computer locale.

Creare il profilo di pubblicazione

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto ContosoUniversity (non sul progetto ContosoUniversity.DAL). Seleziona Pubblica. Verrà visualizzata la pagina Pubblica .

  2. Selezionare Nuovo profilo. Viene visualizzata la finestra di dialogo Seleziona destinazione di pubblicazione .

  3. Selezionare IIS, FTP e così via. Selezionare Crea profilo. Verrà visualizzata la procedura guidata Pubblica .

    Scheda Pubblica profilo della procedura guidata Web

  4. Dal menu a discesa Publish method (Pubblica metodo) selezionare Web Deploy (Distribuzione Web).

  5. In Server immettere localhost.

  6. Per Nome sito immettere Sito Web predefinito/ContosoUniversity.

  7. In URL di destinazione immettere http://localhost/ContosoUniversity.

    L'impostazione URL di destinazione non è obbligatoria. Al termine della distribuzione dell'applicazione, Visual Studio apre automaticamente il browser predefinito a questo URL. Se non si vuole che il browser venga aperto automaticamente dopo la distribuzione, lasciare vuota questa casella.

  8. Selezionare Convalida connessione per verificare che le impostazioni siano corrette ed è possibile connettersi a IIS nel computer locale.

    Un segno di spunta verde verifica che la connessione sia riuscita.

    Scheda Publish Web wizard Connection (Pubblica connessione guidata Web)

  9. Selezionare Avanti per passare alla scheda Impostazioni .

  10. La casella di riepilogo a discesa Configurazione specifica la configurazione di compilazione da distribuire. Lasciare impostato il valore predefinito di Release. In questa esercitazione non verranno distribuite compilazioni di debug.

  11. Espandere Opzioni di pubblicazione file. Selezionare Escludi file dalla cartella App_Data.

    Nell'ambiente di test l'applicazione accede ai database creati nell'istanza di SQL Server Express locale, non ai file .mdf nella cartella App_Data .

  12. Lasciare deselezionate le caselle di controllo Precompile durante la pubblicazione e Rimuovi file aggiuntivi nella destinazione .

    Opzioni di pubblicazione file nella scheda Impostazioni

    La precompilazione è un'opzione utile principalmente per i siti di grandi dimensioni. Può ridurre l'ora di avvio alla prima richiesta di una pagina dopo la pubblicazione del sito.

    Non è necessario rimuovere file aggiuntivi perché si tratta della prima distribuzione e non ci saranno ancora file nella cartella di destinazione.

    Nota

    Se si seleziona Rimuovi file aggiuntivi nella destinazione per una successiva distribuzione nello stesso sito, assicurarsi di usare la funzionalità di anteprima in modo da visualizzare in anticipo quali file verranno eliminati prima della distribuzione. Il comportamento previsto è che Distribuzione Web eliminerà i file nel server di destinazione eliminati nel progetto. Tuttavia, l'intera struttura di cartelle nelle cartelle di origine e di destinazione viene confrontata; e in alcuni scenari, Distribuzione Web potrebbe eliminare i file che non si desidera eliminare.

    Ad esempio, se si dispone di un'applicazione Web in una sottocartella nel server quando si distribuisce un progetto nella cartella radice, la sottocartella verrà eliminata. È possibile avere un progetto per il sito principale in contoso.com e un altro progetto per un blog all'indirizzo contoso.com/blog. L'applicazione blog si trova in una sottocartella. Se si seleziona Rimuovi file aggiuntivi nella destinazione quando si distribuisce il sito principale, l'applicazione blog verrà eliminata.

    Per un altro esempio, la cartella App_Data potrebbe essere eliminata in modo imprevisto. Alcuni database, ad esempio SQL Server Compact, archiviano i file di database nella cartella App_Data. Dopo la distribuzione iniziale, non si vuole continuare a copiare i file di database nelle distribuzioni successive, quindi selezionare Escludi App_Data nella scheda Web Pacchetto/Pubblicazione. Dopo aver eseguito questa operazione, se è selezionata l'opzione Rimuovi file aggiuntivi nella destinazione , i file di database e la cartella App_Data verranno eliminati alla successiva pubblicazione.

Configurare la distribuzione per il database di appartenenza

I passaggi seguenti si applicano al database DefaultConnection nella sezione Database della finestra di dialogo.

  1. Nella casella Stringa di connessione remota immettere il stringa di connessione seguente che punta al nuovo database di appartenenza a SQL Server Express.

    Data Source=.\SQLExpress;Initial Catalog=aspnet-ContosoUniversity;Integrated Security=True
    

    Il processo di distribuzione inserisce questa stringa di connessione nel file Web.config distribuito perché è selezionata l'opzione Usa questa stringa di connessione in fase di esecuzione.

    È anche possibile ottenere il stringa di connessione da Esplora server. In Esplora server espandere Connessioni dati e selezionare il <database machinename>\sqlexpress.aspnet-ContosoUniversity , quindi nella finestra Proprietà copiare il valore della stringa di connessione. Tale stringa di connessione avrà un'impostazione aggiuntiva che è possibile eliminare: Pooling=False.

  2. Selezionare Aggiorna database.

    In questo modo lo schema del database viene creato nel database di destinazione durante la distribuzione. Nei passaggi successivi si specificano gli script aggiuntivi da eseguire: uno per concedere l'accesso al database al pool di applicazioni predefinito e uno per distribuire i dati.

  3. Selezionare Configura aggiornamenti del database.

  4. Nella finestra di dialogo Configura aggiornamenti database selezionare Aggiungi script SQL. Passare allo script Grant.sql salvato in precedenza nella cartella della soluzione.

  5. Ripetere il processo per aggiungere lo script aspnet-data-dev.sql .

    Configurare gli aggiornamenti del database per il database di appartenenza

  6. Selezionare Chiudi.

Configurare la distribuzione per il database dell'applicazione

Quando Visual Studio rileva una classe Entity FrameworkDbContext, crea una voce nella sezione Database con una casella di controllo Esegui Migrazioni Code First anziché una casella di controllo Aggiorna database. Per questa esercitazione si userà tale casella di controllo per specificare Migrazioni Code First distribuzione.

In alcuni scenari, è possibile usare un DbContext database, ma si vuole usare il provider dbDacFx anziché le migrazioni per distribuire il database. In tal caso, vedere Ricerca per categorie distribuire un database Code First senza migrazioni? nelle domande frequenti sulla distribuzione Web di ASP.NET su MSDN.

I passaggi seguenti si applicano al database SchoolContext nella sezione Database della finestra di dialogo.

  1. Nella casella Stringa di connessione remota immettere il stringa di connessione seguente che punta al nuovo database dell'applicazione SQL Server Express.

    Data Source=.\SQLExpress;Initial Catalog=ContosoUniversity;Integrated Security=True
    

    Il processo di distribuzione inserisce questa stringa di connessione nel file Web.config distribuito perché è selezionata l'opzione Usa questa stringa di connessione in fase di esecuzione.

    È anche possibile ottenere il database dell'applicazione stringa di connessione da Esplora server nello stesso modo in cui è stato ottenuto il database di appartenenza stringa di connessione.

  2. Selezionare Esegui Migrazioni Code First (esecuzioni all'avvio dell'applicazione).

    Questa opzione fa sì che il processo di distribuzione configuri il file Web.config distribuito per specificare l'inizializzatore MigrateDatabaseToLatestVersion . Questo inizializzatore aggiorna automaticamente il database alla versione più recente quando l'applicazione accede al database per la prima volta dopo la distribuzione.

Configurare le trasformazioni del profilo di pubblicazione

  1. Selezionare Chiudi. Selezionare quando viene chiesto se si desidera salvare le modifiche.

  2. In Esplora soluzioni espandere Proprietà, espandere PublishProfiles.

  3. Fare clic con il pulsante destro del mouse su CustomProfile.pubxml e rinominarlo Test.pubxml.

  4. Fare clic con il pulsante destro del mouse su Test.pubxml. Selezionare Aggiungi trasformazione di configurazione.

    Menu Aggiungi trasformazione configurazione

    Visual Studio crea il file di trasformazione Web.Test.config e lo apre.

  5. Nel file di trasformazione Web.Test.config inserire il codice seguente immediatamente dopo il tag di configurazione di apertura.

    <appSettings>
        <add key="Environment" value="Test" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
    </appSettings>
    

    Quando si usa il profilo di pubblicazione test, questa trasformazione imposta l'indicatore dell'ambiente su "Test". Nel sito distribuito verrà visualizzato "(Test)" dopo l'intestazione "Contoso University" H1.

  6. Salva e chiudi il file.

  7. Fare clic con il pulsante destro del mouse sul file Web.Test.config e scegliere Anteprima trasformazione per assicurarsi che la trasformazione codificata produchi le modifiche previste.

    La finestra Anteprima Web.config mostra il risultato dell'applicazione delle trasformazioni Web.Release.config e delle trasformazioni Web.Test.config .

Visualizzare in anteprima gli aggiornamenti della distribuzione

  1. Aprire di nuovo la procedura guidata Pubblica Web (fare clic con il pulsante destro del mouse sul progetto ContosoUniversity, scegliere Pubblica, quindi Anteprima).

  2. Nella finestra di dialogo Anteprima selezionare Avvia anteprima per visualizzare un elenco dei file che verranno copiati.

    Anteprima di pubblicazione

    È anche possibile selezionare il collegamento Anteprima database per visualizzare gli script che verranno eseguiti nel database di appartenenza. Non vengono eseguiti script per la distribuzione di Migrazioni Code First, quindi non è necessario visualizzare in anteprima il database dell'applicazione.

  3. Seleziona Pubblica.

    Se Visual Studio non è in modalità amministratore, è possibile che venga visualizzato un messaggio di errore relativo alle autorizzazioni. In tal caso, chiudere Visual Studio, aprirlo in modalità amministratore e riprovare a pubblicare.

    Se Visual Studio è in modalità amministratore, la finestra Output segnala la compilazione e la pubblicazione riuscite.

    Output_window_publish_Test

    Se è stato immesso l'URL nella casella URL di destinazione nella scheda Connessione profilo di pubblicazione, il browser si apre automaticamente alla home page di Contoso University in esecuzione in IIS nel computer.

Test nell'ambiente di test

Si noti che l'indicatore dell'ambiente mostra "(Test)" anziché "(Dev)," che indica che la trasformazione Web.config per l'indicatore di ambiente è stata completata correttamente.

Eseguire la pagina Instructors per verificare che Code First abbia eseguito il seeding del database con i dati dell'insegnante. Quando si seleziona questa pagina, il caricamento potrebbe richiedere alcuni minuti perché Code First crea il database e quindi esegue il Seed metodo . Questa operazione non è stata eseguita quando si era nella home page perché l'applicazione non ha ancora provato ad accedere al database.

Selezionare la scheda Students (Studenti ) per verificare che il database distribuito non abbia studenti.

Selezionare Aggiungi studenti dal menu Studenti . Aggiungere uno studente e quindi visualizzare il nuovo studente nella pagina Studenti . Ciò verifica che sia possibile scrivere correttamente nel database.

Scegliere Aggiorna crediti dal menu Corsi. La pagina Aggiorna crediti richiede autorizzazioni di amministratore, quindi viene visualizzata la pagina Accedi . Immettere le credenziali dell'account amministratore create in precedenza ("admin" e "devpwd"). Viene visualizzata la pagina Aggiorna crediti . In questo modo viene verificato che l'account amministratore creato nell'esercitazione precedente sia stato distribuito correttamente nell'ambiente di test.

Verificare che nella cartella c:\inetpub\wwwroot\ContosoUniversity esista una cartella ELMAH con solo il file segnaposto.

Esaminare le modifiche automatiche di Web.config per Migrazioni Code First

Aprire il file Web.config nell'applicazione distribuita in C:\inetpub\wwwroot\ContosoUniversity ed è possibile vedere dove il processo di distribuzione configurato Migrazioni Code First per aggiornare automaticamente il database alla versione più recente.

Aprire il file Web.config nell'applicazione distribuita in C:\inetpub\wwwroot\ContosoUniversity e vedere dove il processo di distribuzione configurato Migrazioni Code First per aggiornare automaticamente il database alla versione più recente.

Il processo di distribuzione ha anche creato una nuova stringa di connessione per Migrazioni Code First da usare esclusivamente per aggiornare lo schema del database:

Database_Publish stringa di connessione

Questa stringa di connessione aggiuntiva consente di specificare un account utente per gli aggiornamenti dello schema del database e un account utente diverso per l'accesso ai dati dell'applicazione. Ad esempio, è possibile assegnare il ruolo di db_owner a Migrazioni Code First e db_datareader con ruoli db_datawriter all'applicazione. Si tratta di un modello di difesa avanzata comune che impedisce al codice potenzialmente dannoso nell'applicazione di modificare lo schema del database. Ad esempio, questo potrebbe verificarsi in un attacco SQL injection riuscito. Queste esercitazioni non usano questo modello. Per implementare questo modello nello scenario, seguire questa procedura:

  1. Nella procedura guidata Pubblica Web nella scheda Impostazioni immettere il stringa di connessione che specifica un utente con autorizzazioni di aggiornamento completo dello schema del database. Deselezionare la casella di controllo Usa questa stringa di connessione in fase di esecuzione. Nel file Web.config distribuito diventa il DatabasePublish stringa di connessione.

  2. Creare una trasformazione del file Web.config per il stringa di connessione che si vuole che l'applicazione usi in fase di esecuzione.

Riepilogo

L'applicazione è stata ora distribuita in IIS nel computer di sviluppo e ne è stata testata.

Home page in Test

In questo modo viene verificato che il processo di distribuzione abbia copiato il contenuto dell'applicazione nel percorso corretto (esclusi i file che non si desidera distribuire) e che Distribuzione Web sia configurato correttamente IIS durante la distribuzione. Nell'esercitazione successiva si eseguirà un altro test per trovare un'attività di distribuzione che non è ancora stata eseguita: impostazione delle autorizzazioni per le cartelle nella cartella Elm ah .

Ulteriori informazioni

Per informazioni sull'esecuzione di IIS o IIS Express in Visual Studio, vedere le risorse seguenti: