Condividi tramite


Cenni preliminari sulla distribuzione di ASP.NET

Aggiornamento: novembre 2007

Dopo aver sviluppato un sito Web, è possibile distribuirlo in un server Web per il test (server di gestione temporanea) o in un server in cui possa essere gestito dagli utenti (server di produzione). Sono disponibili diverse opzioni per la distribuzione di un sito Web, inclusa la precompilazione.

Vengono illustrati i seguenti argomenti:

  • Scenari

  • Funzionalità di distribuzione

  • Informazioni di supporto

  • Esempi di codice

Scenari

Dopo avere sviluppato un sito Web in Visual Studio, è possibile selezionare uno di questi metodi di distribuzione:

  • Copiare i file del sito Web nel server di destinazione utilizzando gli strumenti di Visual Studio.

  • Precompilare il sito e copiare l'output nel percorso desiderato, ad esempio un server di produzione.

Torna all'inizio

Funzionalità

Le seguenti opzioni di Visual Studio consentono di distribuire un sito Web:

  • Lo strumento Copia sito Web, che consente di copiare il sito Web corrente nel server di destinazione.

  • L'utilità Pubblica sito Web, che consente di compilare un sito Web in un set di file eseguibili da copiare successivamente nel server di destinazione utilizzando il metodo desiderato.

    Nota:

    L'utilità Pubblica sito Web non è disponibile in Microsoft Visual Web Developer Express Edition.

Torna all'inizio

Informazioni di supporto

Visual Studio fornisce lo strumento Copia sito Web, che consente di copiare i file del sito Web corrente nel server di destinazione. Fornisce inoltre l'utilità Pubblica sito Web, che consente di compilare un sito Web in un set di file eseguibili da copiare successivamente nel server di destinazione utilizzando il metodo desiderato.

Nota:

I siti Web possono essere creati anche mediante un progetto applicazione Web. In un progetto applicazione Web, tutti i file della classe sono compilati in un solo assembly. Per ulteriori informazioni, vedere Cenni preliminari sui progetti di applicazione Web.

Oltre a creare un sito Web e quindi distribuirlo in un server di destinazione, è anche possibile creare un sito Web FTP (File Transfer Protocol). In tal caso, si creano e modificano i file direttamente sul server di destinazione. Si tratta di una modalità comoda per lavorare con un sito Web in un server di hosting.

Strumento Copia sito Web

Lo strumento Copia sito Web è simile a un'utilità FTP. Infatti consente di aprire una cartella su un server di destinazione e di caricare e scaricare i file tra il sito Web corrente e quello di destinazione. Lo strumento Copia sito Web supporta una funzionalità di sincronizzazione in grado di esaminare i file presenti nei due siti Web e di verificare automaticamente che in entrambi siano disponibili le versioni aggiornate dei file.

Nota:

Se il server di destinazione è un server FTP, è possibile aprire e modificare i file sul server creando un sito Web FTP. Per ulteriori informazioni, vedere Siti Web distribuiti tramite FTP.

Lo strumento Copia sito Web supporta le seguenti funzionalità:

  • È possibile copiare i file di origine, inclusi i file aspx e i file di classe, nel server di destinazione. In questo scenario, le pagine Web vengono compilate dinamicamente quando richieste.

  • È possibile aprire e copiare file da qualsiasi tipo di sito Web supportato in Visual Studio. Sono inclusi i siti Web IIS (Internet Information Services) locali, IIS remoti e FTP. Il server di destinazione non richiede le estensioni del server di FrontPage.

  • La funzionalità di sincronizzazione esamina i file presenti nei due siti Web e verifica automaticamente che in entrambi siano disponibili le versioni aggiornate dei file.

  • Prima di copiare i file dell'applicazione, lo strumento Copia sito Web colloca un file denominato App_offline.htm nella directory radice del sito Web di destinazione. Grazie alla presenza del file App_offline.htm, ogni richiesta al sito Web viene reindirizzata a tale file. Il file visualizza un messaggio che segnala ai client che il sito Web è in corso di aggiornamento. Quando tutti i file del sito Web sono stati copiati, il file App_offline.htm viene eliminato dal sito Web di destinazione.

Utilità Pubblica sito Web

L'utilità Pubblica sito Web precompila il contenuto del sito Web, incluse le pagine Web (file aspx) e il codice. Copia quindi l'output in una directory o in un percorso del server specificato. È possibile eseguire la pubblicazione direttamente nell'ambito del processo di precompilazione. In alternativa, è possibile precompilare localmente e quindi copiare manualmente i file. Tramite l'utilità Pubblica sito Web il sito Web viene compilato e il codice sorgente viene rimosso dai file, lasciando solo i file stub per le pagine e gli assembly compilati. Quando gli utenti richiedono le pagine, la richiesta viene soddisfatta in ASP.NET dagli assembly precompilati.

Nota:

L'utilità Pubblica sito Web non è disponibile in Microsoft Visual Web Developer Express Edition.

Progetti di applicazioni Web

In alternativa all'utilizzo dell'utilità Pubblica sito Web è possibile creare siti Web utilizzando un progetto applicazione Web. In un progetto applicazione Web, tutti i file della classe sono compilati in un solo assembly. Solo l'assembly deve essere distribuito, insieme con i file aspx e ascx e gli altri file di contenuto statico. Questo modello di progetto applicazione Web assomiglia al modello utilizzato in Visual Studio .NET 2003. In questo modello, i file aspx vengono compilati solo quando vengono eseguiti nel browser. Per ulteriori informazioni sui progetti di applicazioni Web, vedere Cenni preliminari sui progetti di applicazione Web.

Scelta di uno strumento di distribuzione

La scelta tra lo strumento Copia sito Web e l'utilità Pubblica sito Web dipende da come si desidera utilizzare e gestire il sito.

Scelta dello strumento Copia sito Web

I vantaggi dell'utilizzo dello strumento Copia sito Web sono i seguenti:

  • La distribuzione consiste semplicemente nella copia dei file dal sito Web al computer di destinazione.

  • È possibile distribuire il sito Web in un computer di destinazione utilizzando qualsiasi protocollo di connessione supportato da Visual Studio. È possibile copiare il sito Web in una cartella condivisa o in un altro computer della rete. È possibile utilizzare il protocollo FTP per eseguire la copia in un server oppure il protocollo HTTP per eseguire la copia in un server che supporta le estensioni del server di FrontPage.

  • È possibile apportare modifiche o correggere gli errori rilevati nelle pagine direttamente sul server.

  • Se i file del progetto utilizzato sono archiviati in un server centrale, è possibile utilizzare la funzionalità di sincronizzazione per assicurarsi che la versione locale e quella remota dei file siano sincronizzate.

Gli svantaggi dell'utilizzo dello strumento Copia sito Web sono i seguenti:

  • Il sito viene copiato nello stato in cui si trova. Di conseguenza, un eventuale errore di compilazione presente nei file verrà rilevato solo durante l'esecuzione della pagina che genera l'errore, ad esempio da parte di un utente.

Scelta dell'utilità Pubblica sito Web

Di seguito sono indicati i vantaggi derivanti dall'utilizzo dell'utilità Pubblica sito Web:

  • Il processo di precompilazione consente di individuare gli errori in fase di compilazione, nonché i potenziali errori presenti nel file Web.config e in altri file non di codice.

  • Il codice sorgente viene rimosso dal sito Web, incluso il codice dei file Web ASP.NET e dei controlli utente. Questo meccanismo fornisce una misura di protezione per la proprietà intellettuale e rende più difficile l'accesso al codice sorgente del sito da parte di altri utenti.

  • Poiché le pagine del sito sono già compilate, non devono essere compilate dinamicamente alla prima richiesta. In questo modo, il tempo di risposta iniziale per una pagina risulta ridotto. Quando le pagine vengono compilate dinamicamente, l'output viene memorizzato nella cache per le richieste successive.

Di seguito sono indicati gli svantaggi derivanti dall'utilizzo dell'utilità Pubblica sito Web:

  • A seconda delle opzioni di pubblicazione specificate, può essere necessario ricompilare il sito se si apportano modifiche. Potrebbe pertanto risultare poco pratico utilizzare Pubblica sito Web se le pagine vengono modificate spesso durante lo sviluppo di un sito.

  • L'utilità Pubblica sito Web non può distribuire il sito compilato in un server remoto. Può copiarlo solo sul computer locale o su un altro computer della LAN.

    Nota:

    L'utilizzo dell'utilità Pubblica sito Web comporta la sovrascrittura dei file della cartella di destinazione e delle relative sottocartelle. Assicurarsi di effettuare la pubblicazione in un percorso in cui sia possibile eliminare il contenuto esistente.

Utilizzo dello strumento Copia sito Web

Lo strumento Copia sito Web può essere utilizzato per spostare i file dal computer locale a un server di gestione temporanea o a un server di produzione. Risulta particolarmente utile nelle situazioni in cui non è possibile aprire i file dal sito remoto per modificarli. In questo caso consente infatti di copiare i file sul computer locale, modificarli e quindi copiarli nuovamente sul sito remoto. È inoltre possibile utilizzarlo per copiare i file da un server di gestione temporanea al server di produzione al termine dello sviluppo.

Nota:

Se si copia un'applicazione che contiene un riferimento a un componente personalizzato registrato nella Global Assembly Cache, tale componente non verrà copiato con l'applicazione. Per ulteriori informazioni, vedere Procedura: aggiungere riferimenti a un componente .NET o COM in un sito Web.

Siti di origine e siti remoti

Lo strumento Copia sito Web consente di copiare i file tra un sito di origine e un sito remoto. Questi termini vengono utilizzati per distinguere i due siti utilizzati con lo strumento e hanno significati specifici:

  • Sito di origine   Il sito di origine è quello attualmente aperto in Visual Studio.

  • Sito remoto   Il sito remoto è quello in cui si desidera copiare i file. Può trovarsi in un altro computer accessibile mediante le estensioni del server di FrontPage o tramite FTP. In questi casi il sito è realmente remoto. Può tuttavia anche essere un altro sito sul computer locale. È ad esempio possibile eseguire la pubblicazione da un sito Web di file system sul computer a un sito Web IIS locale presente sullo stesso computer. In questo caso, sebbene sia locale per il computer, il sito è remoto quando si utilizza lo strumento Copia sito Web.

Si noti che il sito di origine non corrisponde necessariamente all'origine della copia. È possibile copiare i file dal sito remoto al sito di origine.

Sincronizzazione dei siti

Tramite la sincronizzazione vengono esaminati i file sui siti locale e remoto per verificare che tutti i file su entrambi i siti siano aggiornati. Se ad esempio un file disponibile sul sito remoto è più aggiornato della versione dello stesso file presente sul sito di origine, con la sincronizzazione il file del computer remoto verrà copiato sul sito di origine.

Lo strumento Copia sito Web non unisce i file che hanno lo stesso nome ma contenuti differenti. In questo caso, tramite la sincronizzazione è possibile specificare quale versione di un file mantenere.

Grazie alla sincronizzazione, lo strumento risulta particolarmente utile per gli ambienti con più sviluppatori in cui ciascuno di essi mantiene le copie del sito Web sul proprio computer locale. I singoli sviluppatori possono copiare le ultime modifiche in un server remoto condiviso. Contemporaneamente, possono aggiornare il computer locale con i file modificati dagli altri sviluppatori. I nuovi sviluppatori che lavorano a un progetto possono inoltre ottenere rapidamente le copie di tutti i file di un sito Web. A tale scopo, possono creare un sito Web locale sul computer locale e quindi sincronizzarlo con il sito sul server condiviso.

Stato dei file

Per la sincronizzazione dei file sono necessarie informazioni sullo stato dei file su entrambi i siti. Lo strumento mantiene pertanto informazioni costituite dai timestamp dei file oltre a informazioni aggiuntive richieste per eseguire la sincronizzazione, ad esempio un elenco delle date degli ultimi controlli effettuati sui file, che consente di determinare, tra l'altro, se un file è stato eliminato.

Quando ci si connette a un sito oppure si aggiorna tale sito, lo strumento confronta i timestamp dei file sui due siti e le relative informazioni archiviate, quindi segnala lo stato di ciascun file. Nella tabella riportata di seguito sono illustrati gli stati dei file.

Stato

Descrizione

Non modificato

Il file non ha subito modifiche dall'ultima volta in cui è stato copiato.

Modificato

Il file è associato a un timestamp più recente di quello acquisito l'ultima volta in cui è stato copiato.

Nuovo

Il file è stato aggiunto dall'ultima volta in cui il sito è stato copiato.

Eliminato

Il file è stato rimosso dall'ultima volta in cui il sito è stato copiato. Se si seleziona Mostra file eliminati dall'ultima operazione di copia nello strumento Copia sito Web, nella finestra verrà visualizzata una voce per il file.

Utilizzo dell'utilità Pubblica sito Web

L'utilità Pubblica sito Web consente di pubblicare i siti Web. Compila il sito e copia l'output nel percorso desiderato, ad esempio un server di produzione.

Nota:

L'utilità Pubblica sito Web non è disponibile in Visual Web Developer Express Edition.

Durante la pubblicazione vengono effettuate le seguenti attività:

  • Precompilazione di pagine, codice sorgente nella cartella App_Code e così via, in output eseguibile.

  • Scrittura dell'output eseguibile in una cartella di destinazione.

    Nota:

    Se si pubblica un'applicazione che contiene un riferimento a un componente personalizzato registrato nella Global Assembly Cache, tale componente non verrà pubblicato con l'applicazione. Per ulteriori informazioni, vedere Procedura: aggiungere riferimenti a un componente .NET o COM in un sito Web.

Per ulteriori informazioni, vedere Cenni preliminari sulla precompilazione in ASP.NET.

Precompilazione

Il primo passaggio della pubblicazione consiste nella precompilazione del sito Web. Durante la precompilazione viene eseguito essenzialmente lo stesso processo di compilazione che normalmente si verifica quando una pagina viene compilata dinamicamente dopo essere stata richiesta in un browser. Il processo di precompilazione produce assembly dalle pagine, contenenti sia i tag sia il codice. Compila inoltre i file disponibili nelle cartelle App_Code, App_GlobalResources, App_LocalResources e App_Themes.

È possibile compilare sia pagine ASP.NET a file singolo sia pagine code-behind. Per ulteriori informazioni su questi due modelli, vedere Modello di codice di pagine Web ASP.NET.

Il passaggio della precompilazione nella pubblicazione e la compilazione che si verifica quando si compila un sito Web durante il testing in Visual Studio sono due operazioni distinte. Durante la compilazione il sito (o la pagina corrente ed eventuali file dipendenti) viene compilato e quindi eseguito. Il processo di generazione è un tipo di test e non produce un output distribuibile. Con la precompilazione durante la pubblicazione viene invece creato un output in una cartella specificata che è possibile distribuire in un server di produzione.

Scrittura dell'output precompilato

Al termine del processo di precompilazione, l'output viene scritto in una cartella specificata. È possibile scrivere l'output in qualsiasi cartella disponibile nel file system, utilizzando il protocollo FTP (File Transfer Protocol) o HTTP. Per scrivere sul sito di destinazione, è necessario disporre delle autorizzazioni appropriate.

Nota:

Con il processo di pubblicazione vengono distribuiti solo i file presenti nelle cartelle e nelle sottocartelle del sito Web. Il file Machine.config non viene distribuito. Pertanto, la configurazione del server Web di destinazione potrebbe differire dalla configurazione nel computer. Ciò potrebbe influire sul comportamento dell'applicazione.

È possibile specificare una cartella di destinazione su un server di gestione temporanea o un server di produzione oppure è possibile scrivere l'output in una cartella del computer locale. Se si specifica una cartella su un server di produzione, è possibile eseguire la precompilazione e la distribuzione in un unico passaggio. Se si scrive l'output in una cartella che non fa parte di un sito Web, è possibile copiarlo sul server in un passaggio separato.

Nota:

Se si apre un sito Web precompilato utilizzando Visual Studio, non si sarà in grado di compilare il sito Web. Le opzioni di generazione saranno disattivate. Per modificare un sito Web pubblicato, modificare i file del sito Web originale, ricompilare il sito e quindi di pubblicarlo nuovamente.

L'output del processo di compilazione comprende gli assembly compilati per eventuale codice o pagine. Se si sceglie l'opzione per consentire l'aggiornamento del sito precompilato, le eventuali classi code-behind per i file aspx, asmx e ashx vengono compilate in assembly. I file aspx, asmx e ashx vengono tuttavia copiati così come sono nella cartella di destinazione, quindi è possibile modificarne il layout dopo la distribuzione del sito. Per i siti precompilati che è possibile aggiornare, il codice delle pagine a file singolo non viene compilato in un assembly ma piuttosto distribuito come codice sorgente.

I file statici non vengono compilati ma vengono copiati così come sono nella cartella di output. I file statici includono grafica, file htm o html, file di testo e così via.

Se durante la precompilazione si verifica un errore, verrà segnalato nella finestra Output e nella finestra Elenco errori. Gli errori che si verificano durante la precompilazione impediscono la compilazione e la pubblicazione del sito.

Torna all'inizio

Esempi di codice

Procedura: copiare file di siti Web con lo strumento Copia sito Web

Procedura: precompilare siti Web ASP.NET per la distribuzione

Procedura: firmare assembly per siti Web precompilati

Procedura: creare assembly con versione per siti Web precompilati

Procedura: generare nomi fissi con lo strumento di compilazione ASP.NET

Procedura: configurare siti Web pubblicati

Procedura dettagliata: pubblicazione di un sito Web

Procedura dettagliata: copia di un sito Web con lo strumento Copia sito Web

Torna all'inizio

Vedere anche

Concetti

Cenni preliminari sui progetti di applicazione Web

Cenni preliminari sulla precompilazione in ASP.NET

Riferimenti

Torna all'inizio