Distribuzione del sito tramite un client FTP (VB)

di Scott Mitchell

Scarica il PDF

Il modo più semplice per distribuire un'applicazione ASP.NET consiste nel copiare manualmente i file necessari dall'ambiente di sviluppo all'ambiente di produzione. Questa esercitazione illustra come usare un client FTP per ottenere i file dal desktop al provider host Web.

Introduzione

L'esercitazione precedente ha introdotto una semplice revisione libro ASP.NET applicazione Web, costituita da una manciata di pagine ASP.NET, una pagina master, una classe base Page personalizzata, un numero di immagini e tre fogli di stile CSS. È ora possibile distribuire questa applicazione in un provider host Web, a questo punto l'applicazione sarà accessibile a chiunque abbia una connessione a Internet.

Dalle discussioni nell'esercitazione Determinazione dei file da distribuire , è possibile sapere quali file devono essere copiati nel provider host Web. Tenere presente che i file copiati dipendono dal fatto che l'applicazione sia compilata in modo esplicito o automatico. Ma come si ottengono i file dall'ambiente di sviluppo (desktop) all'ambiente di produzione (il server Web gestito dal provider host Web)? F ile T ransfer P rotocol (FTP) è un protocollo comunemente usato per copiare i file da un computer a un altro tramite una rete. Un'altra opzione è FrontPage Server Extensions (FPSE). Questa esercitazione è incentrata sull'uso del software client FTP autonomo per distribuire i file necessari dall'ambiente di sviluppo all'ambiente di produzione.

Nota

Visual Studio include strumenti per la pubblicazione di siti Web tramite FTP; questi strumenti, oltre a un'occhiata agli strumenti che usano FPSE, sono illustrati nell'esercitazione successiva.

Per copiare i file usando FTP è necessario un client FTP nell'ambiente di sviluppo. Un client FTP è un'applicazione progettata per copiare i file dal computer installato in un computer che esegue un server FTP. Se il provider host Web supporta i trasferimenti di file tramite FTP, come la maggior parte delle operazioni, esiste un server FTP in esecuzione nei server Web. Sono disponibili numerose applicazioni client FTP. Il Web browser può anche raddoppiare come client FTP. Il mio client FTP preferito e quello che verrà usato per questa esercitazione, è FileZilla, un client FTP gratuito e open source disponibile per Windows, Linux e Macs. Qualsiasi client FTP funzionerà, anche se, è possibile usare qualsiasi client con cui si è più comodi.

Se si sta seguendo insieme sarà necessario creare un account con un provider host Web prima di poter completare questa esercitazione o quelle successive. Come indicato nell'esercitazione precedente, ci sono una gaggle delle aziende del provider host Web con un'ampia gamma di prezzi, funzionalità e qualità del servizio. Per questa serie di esercitazioni si sta usando Sconto ASP.NET come provider host Web, ma è possibile seguire insieme a qualsiasi provider di host Web purché supportino la versione ASP.NET il sito viene sviluppato. Queste esercitazioni sono state create usando ASP.NET 3.5.) Inoltre, poiché si copiano i file nel provider host Web usando FTP in questa esercitazione e in futuro, è imperativo che il provider host Web supporti l'accesso FTP ai propri server Web. Praticamente tutti i provider di host Web offrono questa funzionalità, ma è consigliabile eseguire doppio controllo prima di iscriversi.

Distribuzione del progetto di applicazione Web Revisione libro

Si ricordi che esistono due versioni dell'applicazione Web Book Review: una implementata usando il modello di progetto applicazione Web (BookReviewsWAP) e l'altro usando il modello di progetto del sito Web (BookReviewsWSP). Il tipo di progetto influenza se il sito viene compilato automaticamente o in modo esplicito e tale modello di compilazione determina i file da distribuire. Di conseguenza, verranno esaminati i progetti BookReviewsWAP e BookReviewsWSP separatamente, a partire da BookReviewsWAP. Se non è già stato fatto, scaricare queste due applicazioni ASP.NET.

Avviare il progetto BookReviewsWAP passando alla BookReviewsWAP cartella e facendo doppio clic sul BookReviewsWAP.sln file. Prima di distribuire il progetto, è importante compilarlo per assicurarsi che tutte le modifiche apportate al codice sorgente siano incluse nell'assembly compilato. Per compilare il progetto, passare al menu Compila e scegliere l'opzione di menu Build BookReviewsWAP. In questo modo viene compilato il codice sorgente nel progetto in un singolo assembly, , BookReviewsWAP.dllche viene inserito nella Bin cartella.

Ora siamo pronti per distribuire i file necessari! Avviare il client FTP e connettersi al server Web nel provider host Web. Quando si esegue l'iscrizione a un'azienda di hosting Web, verranno inviate informazioni su come connettersi al server FTP. Questo include l'indirizzo per il server FTP e un nome utente e una password.

Copiare i file seguenti dal desktop alla cartella del sito Web radice nel provider host Web. Quando si esegue l'FTP nel server Web nel provider host Web probabilmente nella directory del sito Web radice. Tuttavia, alcuni provider host Web dispongono di una sottocartella denominata www o wwwroot che funge da cartella radice per i file del sito Web. Infine, quando FTPing i file potrebbe essere necessario creare la struttura di cartelle corrispondente nell'ambiente di produzione: la Bin cartella, la cartella, la FictionImages cartella e così via.

  • ~/Default.aspx
  • ~/About.aspx
  • ~/Site.master
  • ~/Web.config
  • ~/Web.sitemap
  • Contenuto completo della Styles cartella
  • Contenuto completo della Images cartella (e della relativa sottocartella, BookCovers)
  • ~/Fiction/Default.aspx
  • ~/Fiction/Blaze.aspx
  • ~/Tech/Default.aspx
  • ~/Tech/CYOW.aspx
  • ~/Tech/TYASP35.aspx
  • ~/Bin/BookReviewsWAP.dll

La figura 1 mostra FileZilla dopo la copia dei file necessari. FileZilla visualizza i file nel computer locale a sinistra e i file nel computer remoto a destra. Come illustrato nella figura 1, i file di codice sorgente ASP.NET, ad esempio About.aspx.vb, si trovano nel computer locale (l'ambiente di sviluppo) ma non sono stati copiati nel provider host Web (ambiente di produzione) perché i file di codice non devono essere distribuiti quando si usa la compilazione esplicita.

Nota

Non vi è alcun danno per avere i file di codice sorgente nel server di produzione, in quanto vengono ignorati. ASP.NET impedisce richieste HTTP ai file di codice sorgente per impostazione predefinita, in modo che anche se i file di codice sorgente sono presenti nel server di produzione non sono accessibili ai visitatori del sito Web. In questo caso, se un utente tenta di visitare http://www.yoursite.com/Default.aspx.vb riceverà una pagina di errore che spiega che questi tipi di file - .vb file - sono vietati.

Usare un client FTP per copiare i file necessari dal desktop al server Web nel provider host Web.

Figura 1: Usare un client FTP per copiare i file necessari dal desktop al server Web nel provider host Web (fare clic per visualizzare l'immagine full-size)

Dopo aver distribuito il sito, è necessario un momento per testare il sito. Se è stato acquistato un nome di dominio e configurato correttamente le impostazioni DNS, è possibile visitare il sito immettendo il nome di dominio. In alternativa, il provider host Web deve essere stato fornito con un URL al sito, che avrà un aspetto simile al nome account. webhostprovider.com o webhostprovider.com/accountname. Ad esempio, l'URL per l'account in Sconto ASP.NET è: http://httpruntime.web703.discountasp.net.

La figura 2 mostra il sito recensioni libro distribuito. Si noti che lo sto visualizzando su Discount ASP. I server di NET, in http://httpruntime.web703.discountasp.net. In questo momento chiunque abbia una connessione a Internet potrebbe visualizzare il mio sito Web! Come ci si aspetta, il sito sembra e si comporta esattamente come si è fatto durante il test nell'ambiente di sviluppo.

Nota

Se viene visualizzato un errore durante la visualizzazione dell'applicazione, assicurarsi di aver distribuito il set corretto di file. Controllare quindi il messaggio di errore per verificare se rivela eventuali indizi a causa del problema. In seguito, è possibile passare al supporto tecnico dell'host Web o pubblicare la domanda al forum appropriato nei forum ASP.NET Forum.

Il sito Recensioni libro è ora accessibile a chiunque abbia una connessione Internet.

Figura 2: Il sito Recensioni libro è ora accessibile a chiunque abbia una connessione Internet (fare clic per visualizzare l'immagine full-size)

Distribuzione del progetto sito Web Di revisione libro

Quando si distribuisce un'applicazione ASP.NET che usa la compilazione automatica, ad esempio BookReviewsWSP Web Site Project, non è presente alcun assembly compilato nella Bin cartella. Di conseguenza, i file di codice sorgente dell'applicazione Web devono essere distribuiti nell'ambiente di produzione. Esaminiamo questo processo.

Come per il progetto applicazione Web, è consigliabile creare prima l'applicazione prima di distribuirla. Durante la creazione di un progetto sito Web non crea un assembly, verifica eventuali errori di compilazione nella pagina. Meglio trovare questi errori ora piuttosto che avere un visitatore del tuo sito individuarli per te!

Dopo aver compilato correttamente il progetto, usare il client FTP per copiare i file seguenti nella cartella del sito Web radice nel provider host Web. Potrebbe essere necessario creare la struttura di cartelle corrispondente nell'ambiente di produzione.

Nota

Se il progetto BookReviewsWAP è già stato distribuito, ma si vuole comunque provare a distribuire il progetto BookReviewsWSP, eliminare prima tutti i file nel server Web caricati durante la distribuzione di BookReviewsWAP e quindi distribuire i file per BookReviewsWSP.

  • ~/Default.aspx
  • ~/Default.aspx.vb
  • ~/About.aspx
  • ~/About.aspx.vb
  • ~/Site.master
  • ~/Site.master.vb
  • ~/Web.config
  • ~/Web.sitemap
  • Contenuto completo della Styles cartella
  • Contenuto completo della Images cartella (e della relativa sottocartella, BookCovers)
  • ~/App_Code/BasePage.vb
  • ~/Fiction/Default.aspx
  • ~/Fiction/Default.aspx.vb
  • ~/Fiction/Blaze.aspx
  • ~/Fiction/Blaze.aspx.vb
  • ~/Tech/Default.aspx
  • ~/Tech/Default.aspx.vb
  • ~/Tech/CYOW.aspx
  • ~/Tech/CYOW.aspx.vb
  • ~/Tech/TYASP35.aspx
  • ~/Tech/TYASP35.aspx.vb

La figura 3 mostra FileZilla dopo aver copiato i file necessari. Come si può notare, i file di codice sorgente ASP.NET, ad esempio About.aspx.vb, sono presenti nel computer locale (l'ambiente di sviluppo) e nel provider host Web (ambiente di produzione) perché i file di codice devono essere distribuiti quando si usa la compilazione automatica.

Usare un client FTP per copiare i file necessari dal desktop al server Web nel provider host Web

Figura 3: Usare un client FTP per copiare i file necessari dal desktop al server Web nel provider host Web (fare clic per visualizzare l'immagine full-size)

L'esperienza utente non è influenzata dal modello di compilazione dell'applicazione. Le stesse pagine ASP.NET sono accessibili e si comportano allo stesso modo se il sito Web è stato creato usando il modello di progetto applicazione Web o il modello progetto sito Web.

Aggiornamento di un'applicazione Web in produzione

Lo sviluppo e la distribuzione di applicazioni Web non sono un processo monouso. Ad esempio, quando si crea il sito Web Book Review ho creato le varie pagine e scritto il codice di accompagnamento sul mio personal computer (ambiente di sviluppo). Dopo aver raggiunto un determinato stato stabile, ho distribuito l'applicazione in modo che altri possano visitare il sito e leggere le mie recensioni. Ma la distribuzione non contrassegna la fine dello sviluppo in questo sito. Posso aggiungere altre recensioni del libro o implementare nuove funzionalità, ad esempio consentendo ai miei visitatori di valutare libri o lasciare i propri commenti. Tali miglioramenti verranno sviluppati nell'ambiente di sviluppo e, al termine, devono essere distribuiti. Lo sviluppo e la distribuzione, pertanto, sono ciclici. Si sviluppa un'applicazione e quindi la si distribuisce. Mentre il sito è attivo e in produzione, le nuove funzionalità vengono aggiunte e i bug vengono risolti nel tempo, che richiedono la ristribuzione dell'applicazione. E così via.

Come si potrebbe aspettarsi, quando si distribuisce nuovamente un'applicazione Web è necessario copiare nuovi e modificati file. Non è necessario ristribuire pagine o file di supporto sul lato client o server invariati (anche se non vi è alcun danno in tal caso).

Nota

Una cosa da tenere presente quando si usa la compilazione esplicita è che ogni volta che si aggiunge una nuova pagina ASP.NET al progetto o si apportano modifiche correlate al codice, è necessario ricompilare il progetto, che aggiorna l'assembly nella Bin cartella. Di conseguenza, è necessario copiare questo assembly aggiornato in produzione durante l'aggiornamento di un'applicazione Web in produzione (insieme ad altri contenuti nuovi e aggiornati).

Comprendere anche che tutte le modifiche apportate ai Web.config file o nella Bin directory si arresta e riavvia il pool di applicazioni del sito Web. Se lo stato della sessione viene archiviato usando la InProc modalità (impostazione predefinita), i visitatori del sito perderanno lo stato della sessione ogni volta che questi file chiave vengono modificati. Per evitare questo problema, è consigliabile archiviare la sessione usando le StateServer modalità o SQLServer . Per altre informazioni su questo argomento, vedere Modalità stato sessione.

Infine, tenere presente che la riconfigurazione di un'applicazione può richiedere da pochi secondi a diversi minuti, a seconda del numero e delle dimensioni dei file che devono essere copiati nell'ambiente di produzione. Durante questo periodo gli utenti che visitano il sito potrebbero riscontrare errori o comportamenti dispari. È possibile disattivare l'intera applicazione aggiungendo una pagina denominata App_Offline.htm alla directory radice dell'applicazione che spiega agli utenti che il sito è inattivo per la manutenzione (o qualsiasi cosa) e verrà eseguito il backup a breve. Quando il file è presente, il App_Offline.htm runtime di ASP.NET reindirizza tutte le richieste in ingresso a tale pagina.

Riepilogo

La distribuzione di un'applicazione Web comporta la copia dei file necessari dall'ambiente di sviluppo nell'ambiente di produzione. Il mezzo più comune per cui i file vengono trasferiti su una rete è il protocollo FTP (File Transfer Protocol) e la maggior parte dei provider host Web supportano l'accesso FTP ai propri server Web. In questa esercitazione è stato illustrato come usare un client FTP per distribuire i file necessari nel server Web. Dopo la distribuzione, il sito Web può essere visitato da chiunque con una connessione a Internet!

Programmazione felice!

Altre informazioni

Per altre informazioni sugli argomenti illustrati in questa esercitazione, vedere le risorse seguenti: