Condividi tramite


Cenni preliminari sulla precompilazione in ASP.NET

Aggiornamento: novembre 2007

In ASP.NET è possibile precompilare un sito Web prima di renderlo disponibile agli utenti. Ciò offre molti vantaggi, che includono tempi di risposta più veloci, controllo degli errori, protezione del codice sorgente e distribuzione efficiente.

È anche possibile compilare un progetto utilizzando il modello di progetto applicazione Web. Tutti i file di codice (autonomi, code-behind e file di classe) del progetto vengono compilati in un solo assembly e memorizzati nella directory Bin. Poiché la compilazione crea un solo assembly, è possibile specificare gli attributi, quali il nome e la versione dell'assembly. È inoltre possibile specificare il percorso dell'assembly di output se non si desidera che sia nella directory Bin. Per ulteriori informazioni, vedere Compilazione di progetti di applicazione Web.

Vengono illustrati i seguenti argomenti:

  • Scenari

  • Funzionalità di precompilazione

  • Informazioni di supporto

  • Esempi di codice

Funzionalità

La precompilazione di un sito Web ASP.NET offre i vantaggi seguenti:

  • Tempi di risposta più rapidi per gli utenti, in quanto non è necessario compilare le pagine e i file di codice alla prima richiesta. Questo risulta particolarmente utile in siti di grandi dimensioni, aggiornati di frequente.

  • Possibilità di identificare gli errori in fase di compilazione, prima che gli utenti visualizzino il sito.

  • La possibilità di creare una versione compilata del sito da distribuire a un server di produzione senza codice sorgente.

Torna all'inizio

Informazioni di supporto

Per impostazione predefinita, i file di codice e le pagine Web ASP.NET vengono compilati dinamicamente quando gli utenti richiedono per la prima volta una risorsa come una pagina dal sito Web. Dopo che le pagine e i file di codice sono stati compilati per la prima volta, le risorse compilate vengono memorizzate nella cache. Pertanto, le richieste successive della stessa pagina sono molto efficienti.

In ASP.NET è inoltre possibile precompilare un intero sito prima di renderlo disponibile agli utenti. ASP.NET offre le opzioni seguenti per la precompilazione di un sito:

  • Precompilazione di un sito sul posto. Opzione utile per i siti esistenti, quando si desideri migliorare le prestazioni ed eseguire il controllo degli errori.

  • Precompilazione di un sito per la distribuzione. Opzione che crea un output specifico, che è possibile distribuire a un server di produzione.

Inoltre, è possibile precompilare un sito per renderlo di sola lettura o aggiornabile. Nelle sezioni seguenti sono fornite ulteriori informazioni su ogni opzione.

Precompilazione sul posto

È possibile contribuire a migliorare le prestazioni di un sito Web precompilandolo. Questo è particolarmente vero per i siti in cui avvengono modifiche e aggiunte frequenti nelle pagine Web e nei file di codice ASP.NET. In un sito Web in costante cambiamento, il tempo aggiuntivo necessario per compilare dinamicamente le pagine nuove e modificate può influire sulla percezione della qualità del sito da parte degli utenti.

La precompilazione di un sito sul posto corrisponde in effetti alla stessa compilazione eseguita quando gli utenti richiedono le pagine dal sito. Di conseguenza, il principale miglioramento delle prestazioni consiste nel fatto che le pagine non devono essere compilate per la prima richiesta.

Quando si esegue la precompilazione sul posto, vengono compilati tutti i tipi di file ASP.NET. I file HTML, gli elementi grafici e gli altri file statici non ASP.NET rimangono inalterati. Il processo di precompilazione segue la stessa logica utilizzata da ASP.NET per la compilazione dinamica, tenendo conto delle dipendenze tra i file. Durante la precompilazione, vengono creati assembly per tutto l'output eseguibile, successivamente inseriti in una cartella speciale all'interno della cartella %SystemRoot%\Microsoft.NET\Framework\versione\Temporary ASP.NET Files. Successivamente, ASP.NET soddisfa le richieste relative alle pagine provenienti dagli assembly in questa cartella.

Se si ripete la precompilazione del sito, vengono compilati solo i file nuovi o modificati oppure quelli con dipendenze dai file nuovi o modificati. Grazie a questa ottimizzazione del compilatore, diventa pratico compilare il sito anche in caso di aggiornamenti di entità ridotta.

Precompilazione per la distribuzione

Un altro utilizzo della precompilazione di un sito è finalizzato a produrne una versione eseguibile che sia possibile distribuire a un server di produzione. La precompilazione per la distribuzione crea l'output sotto forma di un layout. Tale layout include gli assembly, le informazioni di configurazione, le informazioni sulle cartelle del sito e i file statici (file HTML ed elementi grafici).

Dopo aver compilato il sito, è possibile distribuire il layout in un server di produzione mediante strumenti come il comando XCopy di Windows, il protocollo FTP, l'installazione di Windows e così via. Una volta distribuito, il layout funziona come il sito, e ASP.NET soddisfa le richieste di pagine degli assembly nel layout.

La precompilazione di un sito per la distribuzione fornisce una forma di protezione del codice sorgente e di altri elementi tutelati da proprietà intellettuale. Per ulteriori informazioni sul funzionamento del compilatore con i file durante la compilazione per la distribuzione, vedere Gestione dei file durante la compilazione dei siti per la distribuzione più avanti in questo argomento.

È possibile precompilare per la distribuzione in due modi: precompilazione per la sola distribuzione o precompilazione per distribuzione e aggiornamento.

Precompilazione per la sola distribuzione

Quando si esegue la precompilazione per la sola distribuzione, il compilatore genera gli assembly praticamente da tutti i file di origine ASP.NET normalmente compilati in fase di esecuzione. Sono inclusi il codice programma nelle pagine, i file di classe cs e vb, altri file di codice e i file di risorse. Il compilatore rimuove dall'output tutti gli elementi di origine e il codice. Nel layout risultante, i file compilati vengono generati per ciascuno file aspx (con estensione compiled) che contiene i puntatori all'assembly appropriato per la pagina.

Per modificare il sito Web, incluso il layout delle pagine, è necessario modificare i file originali, ricompilare il sito e ripetere la distribuzione del layout. La sola eccezione è rappresentata dalla configurazione del sito. È possibile apportare modifiche al file Web.config sul server di produzione senza dovere ricompilare il sito.

Questa opzione offre il massimo grado di protezione per le pagine ASP.NET e le migliori prestazioni all'avvio.

Precompilazione per distribuzione e aggiornamento

Quando si esegue la precompilazione per la distribuzione e l'aggiornamento, il compilatore genera gli assembly da tutto il codice sorgente (eccettuato il codice delle pagine a file singolo) e dagli altri file che normalmente generano gli assembly, ad esempio i file di risorse. I file con estensione aspx vengono convertiti in file singoli che utilizzano il modello code-behind compilato e quindi copiati nel layout.

Questa opzione consente di apportare limitate modifiche alle pagine Web ASP.NET nel sito dopo la loro compilazione. Ad esempio, è possibile modificare la disposizione dei controlli, i colori, i tipi di carattere e altri elementi relativi all'aspetto delle pagine. È inoltre possibile aggiungere controlli, purché non richiedano gestori eventi o codice di altro tipo.

Quando il sito viene eseguito per la prima volta, in ASP.NET viene effettuata un'ulteriore compilazione per creare l'output dal codice.

Nota:

Un sito aggiornabile precompilato non consente a più pagine di fare riferimento alla stessa classe CodeFile.

Schema per le decisioni di precompilazione

Utilizzare la seguente tabella per decidere quale modello di compilazione utilizzare. Alcune delle opzioni elencate nella tabella sono descritte più avanti in questo argomento.

Obiettivo

Modello di compilazione

Sviluppare rapidamente applicazioni senza doversi preoccupare della compilazione del codice.

Utilizzare la compilazione predefinita (nessuna precompilazione).

Migliorare i tempi di risposta alla prima richiesta di una pagina del sito Web.

Utilizzare la precompilazione sul posto o una delle opzioni di compilazione per la distribuzione.

Separare il codice sorgente e il codice dell'interfaccia utente (UI).

Utilizzare la precompilazione con l'interfaccia utente aggiornabile.

Modificare il codice dell'interfaccia utente senza modificare il codice sorgente.

Utilizzare la precompilazione con l'interfaccia utente aggiornabile.

Rimuovere tutto il codice sorgente e il codice dell'interfaccia utente dal server di produzione.

Utilizzare la precompilazione con l'interfaccia utente non aggiornabile.

Aggiornare l'applicazione sostituendo assembly specifici.

Utilizzare la precompilazione con nomi fissi.

Aumentare la sicurezza dell'applicazione utilizzando assembly con nomi sicuri.

Utilizzare la precompilazione con assembly firmati.

Esecuzione della precompilazione

È possibile precompilare un sito Web mediante lo strumento Aspnet_compiler.exe sulla riga di comando. Per ulteriori informazioni, vedere Procedura: precompilare siti Web ASP.NET per la distribuzione e Strumento per la compilazione di ASP.NET (Aspnet_compiler.exe). Visual Studio include anche i comandi per precompilare un sito Web dall'IDE.

Nota:

La precompilazione di un sito Web riguarda solo il sito stesso, non eventuali siti figlio. Se un sito Web include una sottocartella contrassegnata come applicazione in IIS, l'applicazione figlio non viene compilata quando si precompila la cartella padre.

Quando si precompila un sito Web, esiste una restrizione a livello di codice per i siti che si desidera compilare con la protezione dell'origine attivata. Una classe base delle pagine (una classe code-behind) può fare riferimento alla classe delle pagine associata (file con estensione aspx) e ai membri della classe delle pagine utilizzando un nome di classe completo. Tuttavia, questo tipo di riferimento non funzionerà durante la precompilazione del sito con la protezione dell'origine attivata. Ciò avviene perché la classe base delle pagine del file code-behind non si trova nello stesso assembly della classe delle pagine derivata dalla pagina con estensione aspx. Per ulteriori informazioni sulla precompilazione con la protezione dell'origine attivata, vedere Procedura: firmare assembly per siti Web precompilati.

Compilazione predefinita

Non è necessario compilare manualmente un'applicazione ASP.NET. Per impostazione predefinita, ASP.NET compila l'applicazione Web la prima volta che un browser richiede una pagina dell'applicazione. Se si apporta una modifica a un file dell'applicazione, alla successiva richiesta di una pagina il runtime ASP.NET determina le dipendenze del file modificato e ricompila solo i file interessati dalla modifica.

Vantaggi

I vantaggi dell'utilizzo della compilazione predefinita sono i seguenti:

  • Semplicità d'uso. Il compilatore ASP.NET svolge tutte le operazioni autonomamente.

  • È il modello di compilazione migliore per la fase di sviluppo, quando i passaggi aggiuntivi necessari per la precompilazione del sito Web rallenterebbero il processo di sviluppo.

Svantaggi

Gli svantaggi dell'utilizzo della compilazione predefinita sono i seguenti:

  • Può causare ritardi significativi alla prima richiesta del sito Web.

  • È necessario archiviare i file del codice sorgente nel server di produzione.

  • Il codice sorgente e il codice dell'interfaccia utente sono disponibili per chiunque abbia accesso a livello di file system alla directory del sito Web nel server.

Quando utilizzare la compilazione predefinita

Utilizzare la compilazione predefinita nelle seguenti situazioni:

  • Quando si sviluppa e si testa un sito Web.

  • Per i siti Web con informazioni principalmente statiche.

  • Per i siti Web che non vengono modificati spesso.

  • Quando non crea problemi archiviare i file del codice sorgente nel server di produzione.

Compilazione sul posto

È possibile precompilare un sito che si trova già su un server di produzione. Questa operazione è detta compilazione sul posto. Se si apporta una modifica a un file dell'applicazione, è possibile ricompilare il file interessato con lo strumento di compilazione ASP.NET. I file interessati saranno ricompilati anche la prossima volta che una pagina viene richiesta all'applicazione.

Per ulteriori informazioni su questo modello di compilazione, vedere Procedura: precompilare siti Web ASP.NET.

Vantaggi

I vantaggi dell'utilizzo della compilazione sul posto sono i seguenti:

  • Riduzione dei tempi di risposta da parte del sito Web alla prima richiesta di una pagina.

  • Non sono necessari passaggi di distribuzione particolari. L'applicazione viene compilata esattamente come se venisse richiesta una pagina del sito.

Svantaggi

Gli svantaggi dell'utilizzo della compilazione sul posto sono i seguenti:

  • Tutto il codice sorgente dell'applicazione deve essere archiviato nel server di produzione.

  • Il codice sorgente e il codice dell'interfaccia utente sono disponibili per chiunque abbia accesso alla directory del sito Web.

Quando utilizzare la compilazione sul posto

Utilizzare la compilazione sul posto nelle seguenti situazioni:

  • Si apportano spesso modifiche alle pagine del sito Web.

  • Non crea problemi archiviare i file del codice sorgente nel server di produzione.

  • Si desidera ridurre i tempi di risposta per la richiesta della prima pagina.

Precompilazione con interfaccia utente aggiornabile

Utilizzando l'opzione -u dello strumento di compilazione ASP.NET, è possibile compilare il codice sorgente (file con estensione cs, vb e resource) in una DLL. Nei file aspx è possibile lasciare il codice dell'interfaccia utente a disposizione per l'aggiornamento. Dopo aver distribuito il sito Web in un server di produzione, è possibile apportare modifiche al codice aspx senza dover ricompilare l'intero sito Web.

Per ulteriori informazioni su questo metodo di compilazione, vedere Procedura: precompilare siti Web ASP.NET per la distribuzione.

Vantaggi

I vantaggi della precompilazione di un sito Web con interfaccia utente aggiornabile sono i seguenti:

  • Riduzione dei tempi di risposta da parte del sito Web alla prima richiesta di una pagina.

  • Gli sviluppatori dell'interfaccia utente possono modificare l'aspetto e il comportamento di un sito Web senza dover ricompilare l'intero sito Web.

  • Esiste una misura di protezione per la proprietà intellettuale nel codice sorgente dell'applicazione. È protetto da intromissioni casuali da parte di chiunque abbia accesso alla directory del sito Web.

Svantaggi

Gli svantaggi della precompilazione di un sito Web con interfaccia utente aggiornabile sono i seguenti:

  • È necessario un passaggio di compilazione distinto prima della distribuzione nei server di produzione.

  • Chiunque abbia accesso alla directory del sito Web può accedere alla proprietà intellettuale contenuta nell'interfaccia utente dell'applicazione (file con estensione aspx).

  • Più pagine non possono fare riferimento alla stessa classe CodeFile, che è il file di codice associato per una pagina che utilizza il modello code-behind.

Quando eseguire la precompilazione con interfaccia utente aggiornabile

Precompilare un'applicazione in modo che abbia l'interfaccia utente aggiornabile nelle seguenti situazioni:

  • I progettisti dell'interfaccia utente e gli sviluppatori del codice sorgente lavorano separatamente.

  • Il codice sorgente del programma contiene una proprietà intellettuale che si desidera proteggere da osservazioni casuali.

  • Non si desidera archiviare il codice sorgente del programma nel server di produzione.

Precompilazione con interfaccia utente non aggiornabile

Lo strumento di compilazione ASP.NET può compilare tutto il codice sorgente di un'applicazione in DLL che vengono distribuite nella directory Bin dell'applicazione. Sono inclusi i file dell'interfaccia utente, ad esempio i file con estensione aspx e ascx.

Per ulteriori informazioni su questo metodo di compilazione, vedere Procedura: precompilare siti Web ASP.NET per la distribuzione.

Vantaggi

I vantaggi della precompilazione con interfaccia utente non aggiornabile sono i seguenti:

  • Riduzione dei tempi di risposta da parte del sito Web alla prima richiesta di una pagina.

  • Esiste una misura di protezione per la proprietà intellettuale nel codice sorgente e nel codice dell'interfaccia utente dell'applicazione. È protetto da intromissioni casuali da parte di chiunque abbia accesso alla directory del sito Web.

Svantaggi

Gli svantaggi della precompilazione con interfaccia utente non aggiornabile sono i seguenti:

  • È necessario un passaggio di compilazione distinto prima della distribuzione nei server di produzione.

  • È necessario ricompilare l'intero sito Web anche in caso di modifiche secondarie all'interfaccia utente dell'applicazione.

Quando eseguire la precompilazione con interfaccia utente non aggiornabile

Precompilare il sito Web in modo che abbia l'interfaccia utente non aggiornabile nelle seguenti situazioni:

  • Il codice sorgente dell'interfaccia utente contiene una proprietà intellettuale che si desidera proteggere da osservazioni casuali.

  • Non è necessario modificare spesso l'interfaccia utente.

  • Si desidera che nel server di produzione siano presenti solo DLL compilate.

Precompilazione in assembly con nomi fissi

Lo strumento di compilazione ASP.NET utilizza per gli assembly nomi casuali che vengono generati durante la compilazione. Il nome dell'assembly cambia ogni volta che l'applicazione viene ricompilata.

Dal momento che i nomi degli assembly cambiano, è necessario distribuire di nuovo l'intera applicazione per la manutenzione di un assembly. Utilizzando tuttavia l'opzione -fixednames dello strumento di compilazione ASP.NET, è possibile creare un assembly per ogni pagina dell'applicazione. Il nome dell'assembly non cambierà nelle compilazioni successive. Pertanto, è possibile creare versioni di servizio dell'applicazione che sostituiscono solo gli assembly modificati.

Dal momento che utilizzando l'opzione -fixednames viene creato un assembly per ogni pagina, è necessario limitare il numero di pagine nell'applicazione.

Per ulteriori informazioni su questo metodo di precompilazione, vedere Procedura: generare nomi fissi con lo strumento di compilazione ASP.NET.

Vantaggi

I vantaggi della precompilazione in assembly con nomi fissi sono i seguenti:

  • Il nome di assembly singoli non viene modificato da compilazione a compilazione. Ciò consente di sostituire assembly specifici senza ridistribuire l'applicazione intera.

  • Gli aggiornamenti secondari dell'applicazione possono essere più mirati.

Svantaggi

Gli svantaggi della precompilazione in assembly con nomi fissi sono i seguenti:

  • Viene creato un assembly per ogni pagina dell'applicazione. Ciò può dare vita a molti assembly nel caso di siti che hanno molte pagine.

Quando eseguire la precompilazione in assembly con nomi fissi

Precompilare il sito Web in assembly con nome fisso nella seguente situazione:

  • È necessario effettuare la manutenzione di applicazioni Web senza dover sostituire l'intera applicazione.

Precompilazione in assembly firmati

È possibile utilizzare lo strumento di compilazione ASP.NET per creare assembly con nomi sicuri che possono essere distribuiti nella Global Assembly Cache (GAC) del server o nella directory Bin dell'applicazione. L'utilizzo di un assembly firmato rende più difficile sostituire gli assembly dell'applicazione con codice dannoso.

Per ulteriori informazioni su questo metodo di compilazione, vedere Procedura: firmare assembly per siti Web precompilati.

Vantaggi

I vantaggi della precompilazione in assembly firmati sono i seguenti:

  • Gli assembly firmati aumentano la sicurezza dell'applicazione rendendo più difficile sostituire gli assembly con codice dannoso.

Svantaggi

Gli svantaggi della precompilazione in assembly firmati sono i seguenti:

  • La gestione negli ambienti di sviluppo condivisi può risultare complessa.

  • Gli assembly devono avere l'attributo AllowPartiallyTrustedCallersAttribute per poter essere chiamati dal runtime ASP.NET.

Quando eseguire la precompilazione in assembly firmati

Precompilare il sito Web in assembly firmati nelle seguenti situazioni:

  • Gli utenti hanno accesso alla directory dell'applicazione o alla GAC e possono sostituire gli assembly dell'applicazione.

  • Si desidera ridurre il rischio che terzi sostituiscano gli assembly generati dal codice dell'applicazione.

Scrittura dell'output della precompilazione

Al termine del processo di precompilazione, l'output risultante 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 essere differente da quella del computer locale, influendo 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 il sito, si consiglia di modificare i file nel sito Web originale, quindi di precompilare il sito e 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. Per ulteriori informazioni, vedere Gestione di file durante la compilazione dei siti per la distribuzione più avanti in questo argomento.

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.

Gestione dei file durante la precompilazione ASP.NET

Quando si precompila un sito per la distribuzione, ASP.NET crea un layout, ossia una struttura che contiene l'output del compilatore. In questa sezione viene descritta la modalità di gestione dei file durante la precompilazione, nonché la struttura e il contenuto del layout.

È possibile precompilare il codice sorgente (qualsiasi file che generi un assembly, inclusi il codice del programma e le risorse) e i tag (file aspx), oppure solo il primo.

File compilati

Il processo di precompilazione esegue azioni su vari tipi di file in un'applicazione Web ASP.NET. I file vengono trattati in modo differente a seconda che l'applicazione venga precompilata solo per la distribuzione oppure per la distribuzione e l'aggiornamento.

Nota:

La precompilazione di un sito solo per la distribuzione o per la distribuzione e l'aggiornamento non garantisce il mantenimento degli elenchi di controllo di accesso (ACL) ai file per i file di destinazione e le sottodirectory. Ad esempio, se in precedenza si è precompilato un sito che è stato quindi distribuito in un percorso di destinazione, è stato modificato un elenco di controllo di accesso di un file e quindi il sito è stato nuovamente precompilato e distribuito, la modifica all'elenco di controllo di accesso andrà persa.

Nella tabella riportata di seguito vengono descritti i diversi tipi di file e le azioni intraprese su di essi se l'applicazione viene precompilata solo per la distribuzione.

Tipi di file

Azione di precompilazione

Percorso di output

aspx, ascx, master

Genera assembly e un file con estensione compiled che punta all'assembly. Il file originale rimane nella stessa posizione come segnaposto per soddisfare le richieste.

Assembly e file con estensione compiled vengono scritti nella cartella Bin. Le pagine (file aspx dai quali è stato rimosso il contenuto) rimangono nelle posizioni originali.

asmx, ashx

Genera assembly. Il file originale rimane nella stessa posizione come segnaposto per soddisfare le richieste.

Cartella Bin

File nella cartella App_Code

Genera uno o più assembly, in base alle impostazioni di Web.config.

Nota:
Il contenuto statico nella cartella App_Code non viene copiato nella cartella di destinazione.

Cartella Bin

.File cs o vb non nella cartella App_Code

Esegue la compilazione con la pagina o la risorsa che dipende dal file.

Cartella Bin

File dll esistenti nella cartella Bin.

Copia i file così come sono.

Cartella Bin

File di risorse (resx)

Per i file resx contenuti nella cartella App_LocalResources o App_GlobalResources, genera uno o più assembly e una struttura relativa alle impostazioni cultura.

Cartella Bin

File nella cartella App_Themes e relative sottocartelle

Genera assembly nella posizione di destinazione e file con estensione compiled che puntano agli assembly.

Bin

File statici (htm, html, js, file grafici e così via)

Copia i file così come sono.

Stessa struttura dell'origine.

File di definizione del browser

Copia i file così come sono.

Nota:
Le informazioni del browser vengono ereditate dai file di configurazione a livello di computer e possono quindi determinare comportamenti diversi nel server di destinazione.

App_Browsers

Progetti dipendenti

Genera l'output del progetto dipendente in un assembly.

Cartella Bin

File Web.config

Copia i file così come sono.

Stessa struttura dell'origine.

File Global.asax

Genera un assembly.

Cartella Bin

Nella tabella riportata di seguito vengono descritti i diversi tipi di file e le azioni intraprese su di essi se l'applicazione viene precompilata per la distribuzione e l'aggiornamento.

Tipi di file

Azione di precompilazione

Posizione dell'output

aspx, ascx, master

Genera assembly per file che hanno file di classe code-behind. Genera un file con estensione compiled che punta all'assembly. Le versioni a file singolo di questi file vengono copiate senza modifiche nella posizione di destinazione.

Assembly e file con estensione compiled vengono scritti nella cartella Bin.

asmx, ashx

Copia i file così come sono senza eseguire operazioni di compilazione.

Stessa struttura dell'origine.

File nella cartella App_Code

Genera uno o più assembly, in base alle impostazioni di Web.config.

Nota:
Il contenuto statico nella cartella App_Code non viene copiato nella cartella di destinazione.

Cartella Bin

File cs o vb non nella cartella App_Code

Esegue la compilazione con la pagina o la risorsa che dipende dal file.

Cartella Bin

File dll esistenti nella cartella Bin.

Copia i file così come sono.

Cartella Bin

File di risorse (resx)

Per i file resx contenuti nelle cartelle App_GlobalResources, genera uno o più assembly e una struttura relativa alle impostazioni cultura.

Per i file resx contenuti nelle cartelle App_LocalResources, copia i file così come sono nella cartella App_LocalResources del percorso di output.

Gli assembly vengono inseriti nella cartella Bin

File nella cartella App_Themes e relative sottocartelle

Copia i file così come sono.

Stessa struttura dell'origine.

File statici (htm, html, js, file grafici e così via)

Copia i file così come sono.

Stessa struttura dell'origine.

File di definizione del browser

Copia i file così come sono.

Nota:
Le informazioni del browser vengono ereditate dai file di configurazione a livello di computer e possono quindi determinare comportamenti diversi nel server di destinazione.

App_Browsers

Progetti dipendenti

Genera l'output del progetto dipendente in un assembly.

Cartella Bin

File Web.config

Copia i file così come sono.

Stessa struttura dell'origine.

File Global.asax

Genera un assembly.

Cartella Bin

File con estensione compiled

Per i file eseguibili di un'applicazione Web ASP.NET, il compilatore aggiunge l'estensione compiled al nome degli assembly e dei file. Il nome dell'assembly è generato dal compilatore. Il file con estensione compiled non include codice eseguibile, ma solo le informazioni necessarie ad ASP.NET per individuare l'assembly corretto.

Dopo la distribuzione dell'applicazione precompilata, ASP.NET utilizza gli assembly nella cartella Bin per elaborare le richieste. L'output di precompilazione include file con estensione aspx o asmx come segnaposto delle pagine. I file segnaposto non contengono codice. Esistono solo per richiamare ASP.NET per una richiesta di pagina specifica. I file segnaposto consentono inoltre di impostare le autorizzazioni per i file al fine di limitare l'accesso alle pagine.

Aggiornamento di siti Web precompilati

Dopo la distribuzione di un sito Web precompilato, è possibile apportare modifiche limitate ai file del sito. Nella tabella riportata di seguito viene fornita una descrizione dell'effetto dei vari tipi di modifiche.

Tipo file

Modifiche consentite (solo distribuzione)

Modifiche consentite (distribuzione e aggiornamento)

File statici (htm, html, js, file grafici e così via)

I file statici possono essere modificati, rimossi o aggiunti. Se una pagina Web ASP.NET fa riferimento a pagine o elementi di pagina modificati o rimossi, possono verificarsi errori.

I file statici possono essere modificati, rimossi o aggiunti. Se una pagina Web ASP.NET fa riferimento a pagine o elementi di pagina modificati o rimossi, possono verificarsi errori.

File aspx

Non sono consentite modifiche alle pagine esistenti. Non è possibile aggiungere nuovi file aspx.

È possibile modificare il layout dei file aspx e aggiungere elementi che non richiedono codice, come elementi HTML e controlli server ASP.NET senza gestori eventi. È inoltre possibile aggiungere nuovi file aspx, che vengono compilati alla prima richiesta.

File skin

Modifiche e nuovi file skin vengono ignorati.

Le modifiche e i nuovi file skin sono consentiti.

File Web.config

Sono consentite le modifiche che interessano la compilazione dei file aspx. Le opzioni di compilazione per il debug o i batch vengono ignorate.

Non sono consentite modifiche alle proprietà dei profili o agli elementi dei provider.

Le modifiche sono permesse se non influiscono sulla compilazione del sito o della pagina. Sono incluse le impostazioni del compilatore, i livelli di attendibilità e la globalizzazione. Le modifiche che interessano la compilazione o modificano il funzionamento delle pagine compilate vengono ignorate o possono generare errori. Le altre modifiche sono consentite.

Definizioni del browser

Le modifiche e i nuovi file sono consentiti.

Le modifiche e i nuovi file sono consentiti.

Assembly compilati da file di risorse (resx)

I nuovi file assembly delle risorse possono essere aggiunti per risorse globali e locali.

I nuovi file assembly delle risorse possono essere aggiunti per risorse globali e locali.

Esempi di codice

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

Torna all'inizio

Vedere anche

Riferimenti

Strumento per la compilazione di ASP.NET (Aspnet_compiler.exe)

Torna all'inizio