Distribuire un'applicazione Web ASP.NET usando la distribuzione di Xcopy

Questo articolo descrive come usare il comando MS-DOS Xcopy per distribuire un'applicazione Web di Microsoft ASP.NET.

Versione originale del prodotto: ASP.NET
Numero KB originale: 326355

Riassunto

Il deployment di tipo Xcopy non è adatto a tutte le situazioni. Per i siti Web di grandi dimensioni e per le applicazioni line-of-business, è consigliabile che il sito venga temporaneamente portato offline. Si vuole eseguire questa operazione mentre vengono distribuiti i nuovi contenuti e gli assembly dell'applicazione. È possibile eseguire questa manutenzione in un orario conveniente e pianificato. Per ridurre al minimo i tempi di inattività pianificati, seguire questa procedura:

  1. Creare una nuova directory fisica per l'applicazione da aggiornare. Copiare tutto il nuovo contenuto nella nuova directory fisica.

  2. Riconfigurare la directory virtuale per l'applicazione in modo che punti alla nuova directory fisica con il nuovo contenuto.

    Annotazioni

    Quando si distribuisce nuovo contenuto in un'applicazione Web ASP.NET, l'applicazione può essere riavviata. Se sono presenti applicazioni di grandi dimensioni e applicazioni complesse con requisiti di memoria significativi, l'utilizzo della memoria potrebbe essere aumentato. Quando si riavvia l'applicazione, possono verificarsi problemi di supporto. Ciò include la perdita dello stato della sessione utente.

Che cos'è il metodo di distribuzione Xcopy

La distribuzione di Xcopy descrive la distribuzione in ASP.NET in cui si usa la funzionalità di trascinamento della selezione in Microsoft Windows Explorer, ftp (File Transfer Protocol) o il comando DOS Xcopy per copiare i file da un percorso all'altro. L'applicazione ASP.NET non richiede modifiche al Registro di sistema e non ha requisiti di installazione speciali per la società host nei siti ospitati.

Vantaggi della distribuzione di Xcopy

Un trasferimento di file in stile Xcopy semplifica la distribuzione e la manutenzione dei siti di ASP.NET perché non si effettuano voci del Registro di sistema e perché non si registrano componenti. Le applicazioni Microsoft .NET sono auto-descrittive, in genere senza dipendenza. Con il controllo delle versioni degli assembly, è anche possibile copiare una nuova copia di una libreria di collegamento dinamico (DLL) usata dall'applicazione senza arrestare il server Web.

Differenze tra la distribuzione di Xcopy e Copia Progetto in Visual Studio .NET

La distribuzione di Xcopy non richiede l'installazione di software speciale nel computer di sviluppo o nel server Web. Il metodo Copy Project di Visual Studio .NET richiede l'installazione delle estensioni server di Microsoft FrontPage (FPSE) sul server remoto. Xcopy consente anche di sostituire solo i file modificati più di recente. È possibile selezionare manualmente i file per sostituirli oppure usare l'opzione /d sul Xcopy comando per specificare la data, come indicato di seguito:

xcopy source [destination] /D:m-d-y

Impostare la directory virtuale come applicazione IIS

Se non è già stata configurata la directory di destinazione, è necessario configurarla come applicazione in Microsoft Internet Information Services (IIS) prima di trasferire i file. Per configurare la directory virtuale, seguire questa procedura:

  1. Fare clic su Start, scegliere Programmi, Strumenti di amministrazione e quindi Fare clic su Gestione Servizi Internet.
  2. Nel riquadro sinistro fare clic con il pulsante destro del mouse sul nome della directory virtuale e quindi scegliere Proprietà.
  3. Assicurarsi che il nome del sito Web o il nome della directory virtuale sia elencato nella casella Nome applicazione in Impostazioni applicazione. In caso contrario, fare clic su Crea.

Risoluzione dei problemi

In alcuni casi, non è possibile completare la distribuzione dell'applicazione Web ASP.NET solo tramite il trasferimento di file Xcopy. Questi casi includono quelli seguenti:

  • Assembly che richiedono l'installazione nella Global Assembly Cache (GAC). Se è necessario condividere uno degli assembly che ASP.NET utilizza in più domini applicazione, è necessario usare l'utilità Gacutil.exe per registrare tali assembly nella GAC. È necessario annullare la registrazione, sostituire e quindi registrare nuovamente gli assembly ogni volta che si distribuisce l'applicazione.

  • Interoperabilità COM (Component Object Model). Se l'applicazione ASP.NET utilizza componenti COM tramite interoperabilità COM, è necessario registrare tali componenti COM con COM+ Services.

  • Componenti serviti. Microsoft consiglia di usare l'utilità Regsvcs.exe per registrare tutte le classi che usano i servizi COM+, derivati dalla System.EnterpriseServices.ServicedComponent classe .

References