Condividi tramite


Distribuzione del sito tramite un client FTP (C#)

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 nell'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 recensione libro ASP.NET'applicazione Web, costituita da una manciata di pagine ASP.NET, una pagina master, una classe base Page personalizzata, una serie di immagini e tre fogli di stile CSS. A questo punto è possibile distribuire questa applicazione in un provider host Web, a questo punto l'applicazione sarà accessibile a chiunque abbia una connessione a Internet.

Nelle discussioni dell'esercitazione Determinare quali file devono essere distribuiti , è necessario sapere quali file devono essere copiati nel provider host Web. Tenere presente che quali file vengono copiati dipende dal fatto che l'applicazione sia compilata in modo esplicito o automatico. Ma come si ottengono i file dall'ambiente di sviluppo (il desktop) all'ambiente di produzione (il server Web gestito dal provider host Web)? F ile T esegue rotocol P rotocol (FTP) è un protocollo comunemente usato per copiare i file da un computer a un altro in una rete. Un'altra opzione è FrontPage Server Extensions (FPSE). Questa esercitazione è incentrata sull'uso di 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'analisi degli 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 in cui è 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, è presente un server FTP in esecuzione nei server Web. Sono disponibili diverse 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 open source disponibile per Windows, Linux e Mac. Tuttavia, qualsiasi client FTP funzionerà, quindi è possibile usare qualsiasi client con cui si ha familiarità.

Se si sta seguendo questa procedura, 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 società di provider di host Web con un'ampia gamma di prezzi, caratteristiche e qualità del servizio. Per questa serie di esercitazioni si usa discount ASP.NET come provider host Web, ma è possibile seguire insieme a qualsiasi provider di host Web purché supportino la versione ASP.NET il sito è sviluppato. Queste esercitazioni sono state create usando ASP.NET 3.5. Inoltre, poiché i file verranno copiati nel provider host Web usando FTP in questa esercitazione e in futuro è fondamentale che il provider host Web supporti l'accesso FTP ai server Web. Praticamente tutti i provider di host Web offrono questa funzionalità, ma è consigliabile eseguire un doppio controllo prima di iscriversi.

Distribuzione del progetto di applicazione Web Book Review

Tenere presente che sono disponibili due versioni dell'applicazione Web Book Review: una implementata usando il modello Progetto applicazione Web (BookReviewsWAP) e l'altro usando il modello Progetto sito Web (BookReviewsWSP). Il tipo di progetto influenza se il sito viene compilato automaticamente o in modo esplicito e tale modello di compilazione determina quali file devono essere distribuiti. Di conseguenza, esamineremo separatamente la distribuzione dei progetti BookReviewsWAP e BookReviewsWSP, 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 Compila BookReviewsWAP. In questo modo il codice sorgente del progetto viene compilato in un singolo assembly, BookReviewsWAP.dll, che viene inserito nella Bin cartella .

A questo momento è possibile distribuire i file necessari. Avviare il client FTP e connettersi al server Web nel provider host Web. Quando si effettua l'iscrizione a una società di hosting Web, si invieranno informazioni su come connettersi al server FTP. Questo include l'indirizzo per il server FTP, nonché 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 ftp nel server Web nel provider host Web, è probabile che si trovi nella directory del sito Web radice. Tuttavia, alcuni provider host Web hanno 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, ovvero la Bin cartella, la Fiction cartella, la Images 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 sul computer remoto a destra. Come illustrato nella figura 1, il ASP.NET file di codice sorgente, ad esempio About.aspx.cs, 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 c'è alcun danno per avere i file di codice sorgente nel server di produzione, perché vengono ignorati. ASP.NET impedisce le 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. Ovvero, se un utente tenta di visitare http://www.yoursite.com/Default.aspx.cs riceverà una pagina di errore che spiega che questi tipi di file - .cs file - non sono consentiti.

Screenshot del client FTP FileZilla, che mostra che alcuni file di codice sorgente ASP Dot Net non sono stati copiati nel server remoto.

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 a dimensione intera)

Dopo aver distribuito il sito, è necessario qualche minuto per testare il sito. Se è stato acquistato un nome di dominio e sono state configurate correttamente le impostazioni DNS, è possibile visitare il sito immettendo il nome di dominio. In alternativa, il provider host Web deve aver fornito un URL al sito, che avrà un aspetto simile a accountname. webhostprovider.com o webhostprovider.com/accountname. Ad esempio, l'URL dell'account in Discount 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, all'indirizzo http://httpruntime.web703.discountasp.net. A questo punto chiunque abbia una connessione a Internet potrebbe visualizzare il mio sito Web! Come ci si aspetta, il sito sembra e si comporta esattamente come durante il test nell'ambiente di sviluppo.

Nota

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

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

Figura 2: Il sito Recensioni libro è ora accessibile a chiunque con una connessione Internet (fare clic per visualizzare l'immagine a dimensione intera)

Distribuzione del progetto sito Web di revisione libro

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

Come per il progetto di applicazione Web, è consigliabile creare prima di tutto l'applicazione prima di distribuirla. Durante la compilazione di un progetto di sito Web non viene creato un assembly, viene verificata la presenza di eventuali errori in fase di compilazione nella pagina. Meglio trovare questi errori ora invece di avere un visitatore del sito individuarli automaticamente!

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.cs
  • ~/About.aspx
  • ~/About.aspx.cs
  • ~/Site.master
  • ~/Site.master.cs
  • ~/Web.config
  • ~/Web.sitemap
  • Contenuto completo della Styles cartella
  • Contenuto completo della Images cartella (e della relativa sottocartella, BookCovers)
  • ~/App_Code/BasePage.cs
  • ~/Fiction/Default.aspx
  • ~/Fiction/Default.aspx.cs
  • ~/Fiction/Blaze.aspx
  • ~/Fiction/Blaze.aspx.cs
  • ~/Tech/Default.aspx
  • ~/Tech/Default.aspx.cs
  • ~/Tech/CYOW.aspx
  • ~/Tech/CYOW.aspx.cs
  • ~/Tech/TYASP35.aspx
  • ~/Tech/TYASP35.aspx.cs

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.cs, sono presenti sia nel computer locale (nell'ambiente di sviluppo) che nel provider host Web (ambiente di produzione) perché i file di codice devono essere distribuiti quando si usa la compilazione automatica.

Screenshot della finestra client FTP FileZilla, che mostra che i file di codice sorgente ASP Dot Net sono stati caricati correttamente nel server.

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 a dimensione intera)

L'esperienza utente non è interessata 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 Progetto applicazione Web o il modello Progetto sito Web.

Aggiornamento di un'applicazione Web nell'ambiente di produzione

Lo sviluppo e la distribuzione di applicazioni Web non sono un processo monouso. Ad esempio, quando si crea il sito Web Di revisione libro ho creato le varie pagine e ho scritto il codice a accompagnamento sul mio personal computer (l'ambiente di sviluppo). Dopo aver raggiunto un determinato stato stabile, ho distribuito l'applicazione in modo che altri utenti 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 di libri o implementare nuove funzionalità, come consentire ai miei visitatori di valutare libri o lasciare i propri commenti. Tali miglioramenti verranno sviluppati nell'ambiente di sviluppo e, al termine, dovranno essere distribuiti. Lo sviluppo e la distribuzione sono quindi 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 richiede la ridribuzione dell'applicazione. E così via e così via.

Come ci si può aspettare, quando si distribuisce di nuovo un'applicazione Web è sufficiente copiare i file nuovi e modificati. Non è necessario ridribuire pagine o file di supporto sul lato server o sul lato client (anche se non c'è alcun danno in questo caso).

Nota

Un aspetto 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, sarà necessario copiare questo assembly aggiornato nell'ambiente di produzione durante l'aggiornamento di un'applicazione Web nell'ambiente di produzione (insieme agli altri contenuti nuovi e aggiornati).

Comprendere anche che tutte le Web.config modifiche apportate ai file o nella Bin directory vengono arrestate e riavviate 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.

Tenere infine presente che la riesezione della distribuzione di un'applicazione può richiedere da qualche secondo 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 altro) e verrà eseguito il backup a breve. Quando il App_Offline.htm file è presente, il 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 all'ambiente di produzione. Il mezzo più comune per cui i file vengono trasferiti tramite una rete è il protocollo FTP (File Transfer Protocol) e la maggior parte dei provider host Web supporta l'accesso FTP ai 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 abbia una connessione a Internet.

Buon programmatori!

Altre informazioni

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