Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
La creazione di copie replicate consente di aggiornare gli assembly utilizzati in un dominio applicazione senza scaricare il dominio applicazione. Questa funzionalità si rivela particolarmente utile per applicazioni che devono essere continuamente disponibili, ad esempio i siti ASP.NET.
Quando viene caricato un assembly, il file dell'assembly viene bloccato da Common Language Runtime in modo che non sia possibile aggiornarlo finché l'assembly non viene scaricato. Poiché l'unico modo per scaricare un assembly da un dominio applicazione consiste nello scaricare il dominio applicazione, in circostanze normali un assembly non può essere aggiornato su disco finché non sono stati scaricati tutti i domini applicazione da cui viene utilizzato.
Quando un dominio applicazione viene configurato per la creazione di copie replicate dei file, gli assembly del percorso dell'applicazione vengono copiati in un altro percorso e caricati da tale percorso. La copia è bloccata, ma il file di assembly originale è sbloccato e può essere aggiornato.
Nota importante: |
|---|
Gli unici assembly per i quali è possibile creare copie replicate sono quelli archiviati nella directory dell'applicazione o nelle relative sottodirectory, secondo quanto specificato dalle proprietà ApplicationBase e PrivateBinPath durante la configurazione del dominio applicazione. Non è possibile creare copie replicate degli assembly archiviati nella Global Assembly Cache. |
Nell'elenco riportato di seguito viene descritto come utilizzare le proprietà della classe AppDomainSetup per configurare un dominio applicazione per la creazione di copie replicate.
Attivare la creazione di copie replicate impostando la proprietà ShadowCopyFiles sul valore stringa "true".
Per impostazione predefinita, in questo modo tutti gli assembly del percorso dell'applicazione verranno copiati in una cache di download prima del caricamento. Questa è la stessa cache gestita da Common Language Runtime per archiviare i file scaricati da altri computer. Common Language Runtime elimina automaticamente i file quando non sono più necessari.
Facoltativamente, impostare un percorso personalizzato per i file di cui è stata creata una copia replicata utilizzando le proprietà CachePath e ApplicationName. Il percorso di base viene formato concatenando la proprietà ApplicationName con la proprietà CachePath come sottodirectory. Le copie replicate degli assembly vengono inserite nelle sottodirectory di questo percorso e non nel percorso di base stesso.
Nota:Se la proprietà ApplicationName non è impostata, la proprietà CachePath viene ignorata e viene utilizzata la cache di download. Non viene generata alcuna eccezione.
Se si specifica un percorso personalizzato, sarà necessario provvedere manualmente alla pulizia delle directory e all'eliminazione dei file copiati non più necessari. Questi infatti non vengono eliminati automaticamente.
Esistono diversi motivi per cui è necessario impostare un percorso personalizzato per le copie replicate dei file, ad esempio se l'applicazione genera un numero elevato di copie. La cache di download è limitata per dimensione e non per durata, pertanto può accadere che Common Language Runtime tenti di eliminare un file ancora in uso. È opportuno impostare un percorso personalizzato anche nei casi in cui gli utenti che eseguono l'applicazione non dispongono dell'accesso in scrittura al percorso di directory utilizzato da Common Language Runtime per la cache di download.
Facoltativamente, è possibile limitare gli assembly di cui viene creata la copia replicata utilizzando la proprietà ShadowCopyDirectories.
Se si attiva la funzionalità di copia replicata per un dominio applicazione, per impostazione predefinita tutti gli assembly vengono copiati nel percorso dell'applicazione, ovvero nelle directory specificate dalle proprietà ApplicationBase e PrivateBinPath. È possibile limitare la copia alle directory selezionate creando una stringa contenente solo le directory di cui si desidera creare la copia replicata e assegnando la stringa alla proprietà ShadowCopyDirectories. Separare le directory con punti e virgola. Verrà creata la copia replicata solo degli assembly contenuti nelle directory selezionate.
Metodi obsoleti
La classe AppDomain dispone di molti metodi, ad esempio SetShadowCopyFiles e ClearShadowCopyPath, che possono essere utilizzati per controllare la funzionalità di copia replicata in un dominio applicazione. Questi metodi tuttavia sono stati contrassegnati come obsoleti in .NET Framework versione 2.0. Per configurare un dominio applicazione per le copie replicate è consigliabile utilizzare le proprietà della classe AppDomainSetup.
Vedere anche
Riferimenti
AppDomainSetup.ShadowCopyFiles
Nota importante: