Distribuzione di un'applicazione Web ASP.NET con SQL Server Compact tramite Visual Studio o Visual Web Developer: Distribuzione nell'ambiente di produzione - 7 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 pubblicazione Web. Per un'introduzione alla serie, vedere la prima esercitazione nella serie.
Per un'esercitazione che illustra le funzionalità di distribuzione introdotte dopo la versione RC di Visual Studio 2012, viene illustrato come distribuire edizioni SQL Server diverse da SQL Server Compact e viene illustrato come eseguire la distribuzione in Servizio app di Azure App Web, vedere ASP.NET distribuzione Web con Visual Studio.
Panoramica
In questa esercitazione viene configurato un account con un provider di hosting e si distribuisce l'applicazione Web ASP.NET nell'ambiente di produzione usando la funzionalità di pubblicazione con un clic di Visual Studio.
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.
Selezione di un provider di hosting
Per l'applicazione Contoso University e questa serie di esercitazioni, è necessario un provider che supporta ASP.NET 4 e Distribuzione Web. È stata scelta una società di hosting specifica in modo che le esercitazioni possano illustrare l'esperienza completa della distribuzione in un sito Web live. Ogni azienda di hosting offre funzionalità diverse e l'esperienza di distribuzione nei server varia in qualche modo. Tuttavia, il processo descritto in questa esercitazione è tipico per il processo complessivo. Il provider di hosting usato per questa esercitazione, Cytanium.com, è uno dei molti disponibili e l'uso in questa esercitazione non costituisce un'approvazione o una raccomandazione.
Quando si è pronti per selezionare il proprio provider di hosting, è possibile confrontare le funzionalità e i prezzi nella raccolta di provider nel sito Microsoft.com/web.
Creazione di un account
Creare un account nel provider selezionato. Se il supporto per un database completo SQL Server è aggiunto, non è necessario selezionarlo per questa esercitazione, ma sarà necessario eseguire la migrazione a SQL Server esercitazione più avanti in questa serie.
Per queste esercitazioni non è necessario registrare un nuovo nome di dominio. È possibile testare la corretta distribuzione usando l'URL temporaneo assegnato al sito dal provider.
Dopo aver creato l'account, in genere si riceve un messaggio di posta elettronica di benvenuto che contiene tutte le informazioni necessarie per distribuire e gestire il sito. Le informazioni inviate dal provider di hosting saranno simili a quanto illustrato qui. Il messaggio di posta elettronica di benvenuto Cytanium inviato ai nuovi proprietari di account include le informazioni seguenti:
URL del sito del pannello di controllo del provider, in cui è possibile gestire le impostazioni per il sito. L'ID e la password specificati sono inclusi in questa parte del messaggio di posta elettronica di benvenuto per un semplice riferimento. Entrambi sono stati modificati in un valore demo per questa figura.
Versione predefinita di .NET Framework e informazioni su come modificarla. Molti siti di hosting predefiniti a 2.0, che funzionano con applicazioni ASP.NET destinate a .NET Framework 2.0, 3.0 o 3.5. Tuttavia Contoso University è un'applicazione .NET Framework 4, quindi è necessario modificare questa impostazione. Per un'applicazione ASP.NET 4.5 si userebbe l'impostazione .NET 4.0.
URL temporaneo che è possibile usare per accedere al sito Web. Quando questo account è stato creato, "contosouniversity.com" è stato immesso come nome di dominio esistente. Pertanto l'URL temporaneo è
http://contosouniversity.com.vserver01.cytanium.com
.Informazioni su come configurare i database e le stringhe di connessione necessarie per accedervi:
Informazioni sugli strumenti e le impostazioni per la distribuzione del sito. Il messaggio di posta elettronica da Cytanium include anche WebMatrix, che viene omesso qui.
Impostazione della versione di .NET Framework
Il messaggio di posta elettronica di benvenuto Cytanium include un collegamento alle istruzioni su come modificare la versione di .NET Framework. Queste istruzioni spiegano che questa operazione può essere eseguita tramite il pannello di controllo Cytanium. Altri provider dispongono di siti del pannello di controllo diversi o possono indicare di farlo in modo diverso.
Passare all'URL del pannello di controllo. Dopo aver eseguito l'accesso con il nome utente e la password, viene visualizzato il pannello di controllo.
Nella casella Spazi di hosting tenere premuto il puntatore sull'icona Web e selezionare Siti Web dal menu.
Nella casella Siti Web fare clic su contosouniversity.com (il nome del sito usato al momento della creazione dell'account).
Nella casella Proprietà sito Web selezionare la scheda Estensioni .
Modificare ASP.NET da 2.0 Pipeline integrata a 4.0 (pipeline integrata) e quindi fare clic su Aggiorna.
Pubblicazione nel provider di hosting
Il messaggio di posta elettronica di benvenuto dal provider di hosting include tutte le impostazioni necessarie per pubblicare il progetto e è possibile immettere manualmente tali informazioni in un profilo di pubblicazione. Ma si userà un metodo più semplice e meno soggetto a errori per configurare la distribuzione nel provider: si scarica un file con estensione publishsettings e lo si importa in un profilo di pubblicazione.
Nel browser passare al pannello di controllo Cytanium e selezionare Web e quindi selezionare Siti Web.
Selezionare il sito Web contosouniversity.com .
Selezionare la scheda Pubblicazione Web .
Creare le credenziali da usare per la pubblicazione Web immettendo un nome utente e una password. È possibile immettere le stesse credenziali usate per accedere al pannello di controllo. Fare quindi clic su Attiva.
Fare clic su Scarica profilo di pubblicazione per questo sito Web.
Quando viene richiesto di aprire o salvare il file, salvarlo.
In Esplora soluzioni in Visual Studio fare clic con il pulsante destro del mouse sul progetto ContosoUniversity e scegliere Pubblica. Nella scheda Anteprima viene visualizzata la finestra di dialogo Pubblica Web con il profilo di test selezionato perché è l'ultimo profilo usato.
Selezionare la scheda Profilo e quindi Fare clic su Importa.
Nella finestra di dialogo Importa impostazioni di pubblicazione selezionare il file con estensione publishsettings scaricato e fare clic su Apri. La procedura guidata passa alla scheda Connessione con tutti i campi compilati.
Il file con estensione publishsettings inserisce l'URL permanente pianificato per il sito nella casella URL di destinazione, ma se il dominio non è ancora stato acquistato, sostituire il valore con l'URL temporaneo. Per questo esempio, l'URL è L'unico scopo di questa casella consiste http://contosouniversity.com.vserver01.cytanium.com
nel specificare l'URL a cui verrà aperto automaticamente il browser dopo la distribuzione. Se si lascia vuoto, l'unica conseguenza è che il browser non verrà avviato automaticamente dopo la distribuzione.
Fare clic su Convalida connessione per verificare che le impostazioni siano corrette e che sia possibile connettersi al server. Come si è visto in precedenza, un segno di spunta verde verifica che la connessione sia riuscita.
Quando si fa clic su Convalida connessione, potrebbe essere visualizzata una finestra di dialogo Errore certificato . In caso affermativo, verificare che il nome del server sia quello previsto. In caso affermativo, selezionare Salva questo certificato per le sessioni future di Visual Studio e fare clic su Accetta. Questo errore indica che il provider di hosting ha scelto di evitare la spesa per l'acquisto di un certificato SSL per l'URL a cui si sta distribuendo. Se si preferisce stabilire una connessione sicura usando un certificato valido, contattare il provider di hosting.
Fare clic su Avanti.
Nella sezione Database della scheda Impostazioni immettere gli stessi valori immessi per il profilo di pubblicazione test. Sono disponibili le stringhe di connessione necessarie negli elenchi a discesa.
- Nella casella stringa di connessione per SchoolContext selezionare
Data Source=|DataDirectory|School-Prod.sdf
- In SchoolContext selezionare Applica Migrazioni Code First.
- Nella casella stringa di connessione per DefaultConnection selezionare
Data Source=|DataDirectory|aspnet-Prod.sdf
- In DefaultConnection lasciare deselezionato il database di aggiornamento .
Fare clic su Avanti.
Nella scheda Anteprima fare clic su Avvia anteprima per visualizzare un elenco dei file copiati. Viene visualizzato lo stesso elenco visualizzato in precedenza quando è stato distribuito in IIS nel computer locale.
Prima di pubblicare, modificare il nome del profilo in modo che venga applicato il file di trasformazione Web.Production.config. Selezionare la scheda Profilo e fare clic su Gestisci profili.
Nella finestra di dialogo Modifica profili di pubblicazione Web selezionare il profilo di produzione, fare clic su Rinomina e modificare il nome del profilo in Produzione. e quindi fare clic su Chiudi.
Fare clic su Pubblica.
L'applicazione viene pubblicata nel provider di hosting. Il risultato viene visualizzato nella finestra Output .
Il browser apre automaticamente l'URL immesso nella casella URL di destinazione nella scheda Connessione della procedura guidata Pubblica Web . Nella barra del titolo viene visualizzata la stessa home page di quando si esegue il sito in Visual Studio, ad eccezione di ora non esiste un indicatore di ambiente "(Test)" o "(Dev)". Ciò indica che l'indicatore dell'ambiente Web.config trasformazione ha funzionato correttamente.
Nota
Se nell'intestazione viene ancora visualizzato "(Test)", eliminare la cartella obj dal progetto ContosoUniversity e ridistribuire. Nelle versioni non definitive del software, il file di trasformazione applicato in precedenza (Web.Test.config) potrebbe essere applicato di nuovo anche se si usa il profilo di produzione.
Prima di eseguire una pagina che causa l'accesso al database, assicurarsi che Elmah possa registrare eventuali errori che si verificano.
Impostazione delle autorizzazioni delle cartelle per Elmah
Come si ricorda dall'esercitazione precedente in questa serie, è necessario assicurarsi che l'applicazione disponga delle autorizzazioni di scrittura per la cartella nell'applicazione in cui Elmah archivia i file di log degli errori. Quando si è distribuito in IIS localmente nel computer, impostare manualmente tali autorizzazioni. In questa sezione verrà illustrato come impostare le autorizzazioni in Cytanium. Alcuni provider di hosting potrebbero non consentire di eseguire questa operazione. Possono offrire una o più cartelle predefinite con autorizzazioni di scrittura. In tal caso è necessario modificare l'applicazione per usare le cartelle specificate.
È possibile impostare le autorizzazioni per le cartelle nel pannello di controllo Cytanium. Passare all'URL del pannello di controllo e selezionare File Manager.
Nella casella Gestione file selezionare contosouniversity.com e quindi wwwroot per visualizzare la cartella radice dell'applicazione. Fare clic sull'icona del lucchetto accanto a Elmah.
Nella finestraAutorizzazioni cartellafile/ selezionare le caselle di controllo Lettura e scrittura per contosouniversity.com e fare clic su Imposta autorizzazioni.
Assicurarsi che Elmah abbia accesso in scrittura alla cartella Elmah causando un errore e quindi visualizzando il report di errore Elmah. Richiedere un URL non valido, ad esempio Studentsxxx.aspx. Come prima, viene visualizzata la pagina GenericErrorPage.aspx . Fare clic sul collegamento Disconnessione e quindi eseguire Elmah.axd. Per prima cosa viene visualizzata la pagina Log In , che verifica che la trasformazione Web.config sia stata aggiunta correttamente l'autorizzazione Elmah. Dopo aver eseguito l'accesso, viene visualizzato il report che mostra l'errore appena causato.
Test nell'ambiente di produzione
Eseguire la pagina Studenti . L'applicazione tenta di accedere al database School per la prima volta, che attiva Migrazioni Code First per creare il database. Quando la pagina viene visualizzata dopo un momento di ritardo, mostra che non ci sono studenti.
Eseguire la pagina Insegnanti per verificare che i dati di inizializzazione siano stati inseriti correttamente nei dati dell'insegnante nel database.
Come si è fatto nell'ambiente di test, si vuole verificare che gli aggiornamenti del database funzionino nell'ambiente di produzione, ma in genere non si vogliono immettere i dati di test nel database di produzione. Per questa esercitazione si userà lo stesso metodo eseguito nel test. Tuttavia, in un'applicazione reale è possibile trovare un metodo che convalida che gli aggiornamenti del database hanno esito positivo senza introdurre i dati di test nel database di produzione. In alcune applicazioni potrebbe essere pratico aggiungerlo e quindi eliminarlo.
Aggiungere uno studente e quindi visualizzare i dati immessi nella pagina Studenti per verificare che sia possibile aggiornare i dati nel database.
Verificare che le regole di autorizzazione funzionino correttamente selezionando Aggiorna crediti dal menu Corsi . Viene visualizzata la pagina Accesso . Immettere le credenziali dell'account amministratore, fare clic su Accedi e viene visualizzata la pagina Aggiorna crediti .
Se l'accesso ha esito positivo, viene visualizzata la pagina Aggiorna crediti . Ciò indica che il database di appartenenza ASP.NET (con l'account amministratore singolo) è stato distribuito correttamente.
Il sito è stato distribuito e testato correttamente ed è disponibile pubblicamente su Internet.
Creazione di un ambiente di test più affidabile
Come illustrato nell'esercitazione Distribuzione nell'ambiente di test, l'ambiente di test più affidabile sarà un secondo account nel provider di hosting simile all'account di produzione. Questo sarebbe più costoso rispetto all'uso di IIS locale come ambiente di test, poiché è necessario iscriversi per un secondo account di hosting. Tuttavia, se impedisce errori del sito di produzione o interruzioni, è possibile decidere che vale il costo.
La maggior parte del processo per la creazione e la distribuzione in un account di test è simile a quella già eseguita per la distribuzione in produzione:
- Creare un file di trasformazioneWeb.config .
- Creare un account nel provider di hosting.
- Creare un nuovo profilo di pubblicazione e distribuire nell'account di test.
Impedire l'accesso pubblico al sito di test
Una considerazione importante per l'account di test è che sarà live su Internet, ma non si vuole che il pubblico lo usi. Per mantenere il sito privato, è possibile usare uno o più dei metodi seguenti:
- Contattare il provider di hosting per impostare le regole del firewall che consentono l'accesso al sito di test solo da indirizzi IP usati per il test.
- Mascherare l'URL in modo che non sia simile all'URL del sito pubblico.
- Usare un file robots.txt per assicurarsi che i motori di ricerca non eseguiranno la ricerca per indicizzazione nel sito di test e segnalano i collegamenti ai risultati della ricerca.
Il primo di questi metodi è ovviamente il più sicuro, ma la procedura per cui è specifica per ogni provider di hosting e non verrà illustrata in questa esercitazione. Se si dispone con il provider di hosting per consentire solo all'indirizzo IP di passare all'URL dell'account di test, in teoria non è necessario preoccuparsi dei motori di ricerca per indicizzazione. Tuttavia, anche in questo caso, la distribuzione di un file robots.txt è una buona idea come backup nel caso in cui la regola del firewall venga disattivata accidentalmente.
Il file robots.txt passa nella cartella del progetto e deve avere il testo seguente in esso:
User-agent: *
Disallow: /
La User-agent
riga indica ai motori di ricerca che le regole nel file si applicano a tutti i web crawler del motore di ricerca (robot) e la Disallow
riga specifica che nessuna pagina nel sito deve essere sottoposta a ricerca per indicizzazione.
Probabilmente si vuole che i motori di ricerca catalogino il sito di produzione, quindi è necessario escludere questo file dalla distribuzione di produzione. A tale scopo, vedere È possibile escludere file o cartelle specifici dalla distribuzione? in ASP.NET domande frequenti sulla distribuzione del progetto applicazione Web. Assicurarsi di specificare l'esclusione solo per il profilo di pubblicazione produzione.
La creazione di un secondo account di hosting è un approccio all'uso di un ambiente di test non obbligatorio, ma potrebbe essere utile per la spesa aggiunta. Nelle esercitazioni seguenti si continuerà a usare IIS come ambiente di test.
Nell'esercitazione successiva si aggiornerà il codice dell'applicazione e si distribuirà la modifica negli ambienti di test e produzione.