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 Servizio app di Azure 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 a Visual Studio Development Server (noto anche come Cassini), usato da Visual Studio 2017 per impostazione predefinita. Ma nessuno dei due server Web di sviluppo funziona esattamente come IIS. Di conseguenza, un'app può essere eseguita e testata correttamente in Visual Studio, ma ha esito negativo 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 seguito 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 in Servizio app di 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 indicazioni 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 che 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à 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à stato installato, WPI installa solo gli elementi mancanti.

    • 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>Programmi e funzionalità>Attiva o disattiva le funzionalità di Windows.

    • Espandere Internet Information Services, Servizi Web eFunzionalità di sviluppo di applicazioni.

    • Verificare che ASP.NET 4.7 sia selezionato.

      Selezionare ASP.NET 4.7

    • Verificare che sia selezionata l'opzione World Wide Web Services e IIS Management Console . Viene installato IIS e Gestione IIS.

      Selezionare Servizi Web a livello mondiale

    • Selezionare OK. Vengono visualizzati i messaggi della finestra di dialogo che indicano che è in corso 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" nella pagina Iniziale. In Windows 7 selezionare Esegui dal menu Start. Se Esegui non è presente 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 Connections espandere il nodo del 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 versioni successive, 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 di .NET in .NET CLR v4.0.30319. Selezionare OK.

    Selecting_.NET_4_for_DefaultAppPool

A questo punto è possibile pubblicare un'applicazione Web in IIS. Prima di tutto, tuttavia, creare database per il test.

Installare SQL Server Express

LocalDB non è progettato per funzionare in IIS, quindi l'ambiente di test deve avere SQL Server Express installato. Se si usa Visual Studio 2010 SQL Server Express, è già installato per impostazione predefinita. 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 Nuovo SQL Server'installazione autonoma o aggiungere funzionalità a un'installazione esistente e seguire le istruzioni che accettano le opzioni 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 richiedere più database o non consentire più 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 Connections dati e scegliere Crea nuovo database SQL Server.

Selecting_Create_New_SQL_Server_Database

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

Creare aspnet-ContosoUniversity

Seguire la stessa procedura per creare un nuovo database 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 predefinite 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 lavorare con SQL Server Express 2012 o versione successiva e con le impostazioni IIS in Windows 10, Windows 8 o Windows 7 mentre vengono 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, è possibile che sia necessario apportare modifiche a questo script. Per altre informazioni sugli script di SQL Server, vedere SQL Server Documentazione online.

Nota

Nota sulla sicurezza Questo script concede db_owner le autorizzazioni all'utente che accede 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 dello schema di database complete solo per la distribuzione e specificare per l'esecuzione un utente diverso che dispone delle autorizzazioni solo per la lettura e la scrittura dei dati. Per altre informazioni, vedere Revisione delle modifiche automatiche Web.config per Migrazioni Code First più avanti 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. Selezionare Esegui.

    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 l'applicazione viene eseguita.

Eseguire la pubblicazione in IIS

Esistono diversi modi per distribuire 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 contenuto 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 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 pubblica 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). Selezionare Pubblica. Verrà visualizzata la pagina Pubblica .

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

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

    Scheda Pubblica profilo della procedura guidata Web

  4. Nel menu a discesa Pubblica metodo selezionare Distribuzione Web.

  5. Per Server immettere localhost.

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

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

    L'impostazione URL di destinazione non è necessaria. 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 e che sia possibile connettersi a IIS nel computer locale.

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

    Scheda Pubblica connessione guidata Web

  9. Selezionare Avanti per passare alla scheda Impostazioni .

  10. La casella a discesa Configurazione specifica la configurazione di compilazione da distribuire. Lasciare impostato il valore predefinito di Release. Non si distribuiscono build di debug in questa esercitazione.

  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 di .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 della prima richiesta di una pagina dopo la pubblicazione del sito.

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

    Nota

    Se si seleziona Rimuovi file aggiuntivi nella destinazione per una distribuzione successiva 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 La distribuzione Web eliminerà i file nel server di destinazione eliminati nel progetto. Tuttavia, l'intera struttura di cartelle sotto le cartelle di origine e di destinazione viene confrontata; e in alcuni scenari, La 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. Si potrebbe avere un progetto per il sito principale in contoso.com e un altro progetto per un blog in contoso.com/blog. L'applicazione di blog si trova in una sottocartella. Se si seleziona Rimuovi file aggiuntivi nella destinazione quando si distribuisce il sito principale, l'applicazione di blog verrà eliminata.

    Per un altro esempio, la cartella App_Data potrebbe essere eliminata in modo imprevisto. Alcuni database, ad esempio SQL Server Compact archiviare 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 Pacchetto/Pubblicazione Web. Dopo aver eseguito questa operazione, se si dispone di file aggiuntivi nella destinazione selezionata, 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 SQL Server Express.

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

    Il processo di distribuzione inserisce questa stringa di connessione nel file di 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 Data Connections e selezionare il database machinename>\sqlexpress.aspnet-ContosoUniversity, quindi dalla finestra Proprietà copiare il< valore Stringa di connessione. Tale stringa di connessione avrà un'impostazione aggiuntiva che è possibile eliminare: Pooling=False.

  2. Selezionare Aggiorna database.

    Ciò causa la creazione dello schema di database 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 database Aggiornamenti selezionareAggiungi script SQL. Passare allo script Grant.sql salvato in precedenza nella cartella della soluzione.

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

    Configurare Aggiornamenti 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 questo caso, vedere Ricerca per categorie distribuire un database Code First senza migrazioni? nella ASP.NET Domande frequenti sulla distribuzione Web in MSDN.

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

  1. Nella casella Stringa di connessione remoto immettere i stringa di connessione seguenti che puntano 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 di 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 (esecuzione all'avvio dell'applicazione).

    Questa opzione causa il processo di distribuzione per configurare il file di 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 richiesto 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 configurazione.

    Aggiungi menu Trasformazione configurazione

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

  5. Nel file di trasformazioneWeb.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. Salvare e chiudere il file.

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

    La finestra di anteprimaWeb.config mostra il risultato dell'applicazione delle trasformazioni Web.Release.config e delle trasformazioniWeb.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, selezionare Pubblica, quindi Anteprima).

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

    Pubblica anteprima

    È 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 è disponibile alcuna anteprima per il database dell'applicazione.

  3. Selezionare Pubblica.

    Se Visual Studio non è in modalità amministratore, potrebbe essere visualizzato un messaggio di errore delle 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 corretta compilazione e la pubblicazione.

    Output_window_publish_Test

    Se è stato immesso l'URL nella casella URL di destinazione nella scheda Connessione profilo di pubblicazione, il browser apre automaticamente la 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 mostra che la trasformazione Web.config per l'indicatore di ambiente ha avuto esito positivo.

Eseguire la pagina Instructors per verificare che Code First ha inizializzato il database con i dati dell'insegnante. Quando si seleziona questa pagina, potrebbe richiedere alcuni minuti per caricare perché Code First crea il database e quindi esegue il Seed metodo. Non è stato fatto questo quando si era nella home page perché l'applicazione non ha ancora tentato di accedere al database.

Selezionare la scheda 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.

Dal menu Corsi selezionare Aggiorna crediti. La pagina Aggiorna crediti richiede autorizzazioni di amministratore, quindi viene visualizzata la pagina Accesso . 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 esista una cartella ELMAH nella cartella c:\inetpub\wwwroot\ContosoUniversity con solo il file segnaposto in esso.

Esaminare le modifiche Web.config automatiche per Migrazioni Code First

Aprire il fileWeb.confignell'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.

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

Questo stringa di connessione aggiuntivo 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_datareadercon ruoli db_datawriter all'applicazione. Si tratta di un modello comune di difesa in profondità 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 la stringa di connessione che specifica un utente con autorizzazioni di aggiornamento completo dello schema di database. Deselezionare la casella di controllo Usa questa stringa di connessione in fase di esecuzione. Nel file di Web.config distribuito diventa il DatabasePublish stringa di connessione.

  2. Creare una trasformazione file Web.config per l'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 l'ha testata.

Home page in Test

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

Altre informazioni

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