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.
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:
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.
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 ulteriori informazioni sull'uso di server Web in Visual Studio, vedere Server Web in Visual Studio per progetti Web ASP.NET.
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. La soluzione contiene la lezione 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.
È 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 Web Deploy.
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à>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.
Verificare che Servizi World Wide Web e Console di gestione IIS siano selezionati. Vengono installati IIS e Gestione IIS.
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.
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.
Immettere "inetmgr" e selezionare OK.
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.
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 –iQuesto comando crea nuovi pool di applicazioni per .NET Framework 4, ma il pool di applicazioni predefinito rimarrà impostato su 2.0. Stai distribuendo un'applicazione destinata a .NET 4 nel pool di applicazioni, quindi cambia il pool di applicazioni in .NET 4.
Se hai chiuso Gestione IIS, eseguirlo di nuovo, espandere il nodo del server e selezionare Pool di Applicazioni.
Nel riquadro Pool di applicazioni selezionare DefaultAppPool. Nel riquadro Azioni selezionare Impostazioni di base.
Nella finestra di dialogo Modifica pool di applicazioni, modificare la versione di .NET CLR in .NET CLR v4.0.30319. Seleziona OK.
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, scaricalo e installalo dal Download Center: 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:
- Database di appartenenza
- 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, implementerai in due database nell'ambiente di test e in un database negli ambienti di staging e produzione.
Dal menu Visualizza in Visual Studio selezionare l'opzione 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.
Nella finestra di dialogo Crea nuovo database SQL Server immettere ".\SQLExpress" nella casella Nome server e "aspnet-ContosoUniversity" nella casella Nuovo nome database. Seleziona OK.
Seguire la stessa procedura per creare un nuovo database di SQL Server Express School denominato ContosoUniversity.
Esplora server mostra i due nuovi database.
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 ulteriori informazioni, vedere Esaminare le modifiche automatiche al file Web.config per le 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.
In Visual Studio aprire il file Grant.sql creato in precedenza.
Selezionare Connetti.
Nella finestra di dialogo Connetti al server immettere .\SQLExpress come Nome server. Selezionare Connetti.
Nell'elenco a discesa del database selezionare ContosoUniversity. Seleziona Execute.
L'identità predefinita del pool di applicazioni ora dispone di autorizzazioni sufficienti nel database dell'applicazione affinché le Migrazioni 'Code First' possano creare le tabelle del database quando l'applicazione viene eseguita.
Eseguire la pubblicazione in IIS
Esistono diversi modi per eseguire la distribuzione in IIS usando Visual Studio e Distribuzione Web:
- Utilizzare la pubblicazione con un solo clic in Visual Studio.
- 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
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 .
Selezionare Nuovo profilo. Viene visualizzata la finestra di dialogo Seleziona destinazione di pubblicazione .
Selezionare IIS, FTP e così via. Selezionare Crea profilo. Verrà visualizzata la procedura guidata di pubblicazione.
Dal menu a discesa Metodo di pubblicazione (Publish method), selezionare Distribuzione Web (Web Deploy).
In Server immettere localhost.
Per Nome sito immettere Sito Web predefinito/ContosoUniversity.
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.
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.
Selezionare Avanti per passare alla scheda Impostazioni .
La casella 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.
Espandi 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 .
Lasciare deselezionate le caselle di controllo Precompila durante la pubblicazione e Rimuovi file aggiuntivi nella destinazione.
La precompilazione è un'opzione utile principalmente per i siti di grandi dimensioni. Può ridurre il tempo di avvio quando una pagina viene richiesta per la prima volta 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 Web Deploy elimini i file nel server di destinazione che hai eliminato nel tuo 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.
Nella casella Stringa di connessione remota, immettere la stringa di connessione seguente che punta al nuovo database di appartenenza di SQL Server Express.
Data Source=.\SQLExpress;Initial Catalog=aspnet-ContosoUniversity;Integrated Security=TrueIl 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 la 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.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.
Selezionare Configura aggiornamenti del database.
Nella finestra di dialogo Configura aggiornamenti database selezionare Aggiungi script SQL. Vai allo script Grant.sql che hai salvato in precedenza nella cartella del progetto.
Ripetere il processo per aggiungere lo script aspnet-data-dev.sql .
Selezionare Chiudi.
Configurare la distribuzione per il database dell'applicazione
Quando Visual Studio rileva una classe Entity FrameworkDbContext, crea una voce nella sezione Databases con una casella di controllo Esegui Migrazioni Code First anziché una casella di controllo Aggiorna Database. Per questo tutorial, userai la casella di controllo per specificare la distribuzione delle Migrazioni Code First.
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 Come distribuire un database Code First senza migrazioni? nella sezione FAQ sulla distribuzione Web di ASP.NET su MSDN.
I passaggi seguenti si applicano al database SchoolContext nella sezione Database della finestra di dialogo.
Nella casella Stringa di connessione remota, immettere la seguente stringa di connessione che punta al nuovo database dell'applicazione SQL Server Express.
Data Source=.\SQLExpress;Initial Catalog=ContosoUniversity;Integrated Security=TrueIl 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 la stringa di connessione al database dell'applicazione da Server Explorer nello stesso modo in cui è stata ottenuta la stringa di connessione al database di appartenenza.
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
Selezionare Chiudi. Selezionare Sì quando viene chiesto se si desidera salvare le modifiche.
In Esplora soluzioni, espandere Proprietà, espandere Profili di pubblicazione.
Fare clic con il pulsante destro del mouse su CustomProfile.pubxml e rinominarlo Test.pubxml.
Fare clic con il pulsante destro del mouse su Test.pubxml. Selezionare Aggiungi trasformazione di configurazione.
Visual Studio crea il file di trasformazione Web.Test.config e lo apre.
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.
Salva e chiudi il file.
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
Aprire di nuovo la procedura guidata Pubblica Web (fare clic con il pulsante destro del mouse sul progetto ContosoUniversity, scegliere Pubblica, quindi Anteprima).
Nella finestra di dialogo Anteprima selezionare Avvia anteprima per visualizzare un elenco dei file che verranno copiati.
È anche possibile selezionare il collegamento Anteprima database per visualizzare gli script che verranno eseguiti nel database dei membri. Non vengono eseguiti script per la distribuzione di Migrazioni Code First, quindi non è necessario visualizzare in anteprima il database dell'applicazione.
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.
Se hai immesso l'URL nella casella URL di destinazione nella scheda Connessione del 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.
Esamina le modifiche automatiche al file Web.config per le migrazioni Code First
Apri il file Web.config nell'applicazione distribuita in C:\inetpub\wwwroot\ContosoUniversity e potrai vedere dove il processo di distribuzione ha configurato le migrazioni Code First per aggiornare automaticamente il database all’ultima versione.
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:
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 i ruoli db_datareader e 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:
In Pubblica Web nella scheda Impostazioni, immettere la stringa di connessione che specifica un utente con pieni poteri di aggiornamento dello schema del database. Deselezionare la casella di controllo Usa questa stringa di connessione in fase di esecuzione. Nel file Web.config distribuito, questa diventa la stringa di connessione
DatabasePublish.Creare una trasformazione del file Web.config per il stringa di connessione che si vuole che l'applicazione usi in fase di esecuzione.
Riepilogo
Ora hai distribuito la tua applicazione su IIS nel tuo computer di sviluppo e l'hai testata lì.
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:
- Panoramica di IIS Express nel sito IIS.net.
- Introduzione a IIS Express nel blog di Scott Guthrie.
- Server Web in Visual Studio per progetti Web ASP.NET.
- Differenze principali tra IIS e il server di sviluppo ASP.NET nel sito di ASP.NET.