2009-05-26 5 views
13

Ho sviluppato la mia prima applicazione web che, a sorpresa, sta diventando molto popolare.Metti un sito web in modalità manutenzione?

Poiché il sito Web è ora attivo, ho difficoltà a fare alcune modifiche, nel timore che alcune persone siano ancora loggate e utilizzino l'applicazione.

Desidero evitare di avere un'istanza duplicata dell'applicazione Web per il test.

Esiste un modo per mettere il sito Web in "modalità di manutenzione" con l'accesso solo a me? Mi piace reindirizzare a una pagina con alcune informazioni, dicendole in modalità di manutenzione.

Grazie. :-)

risposta

22

Si può semplicemente rilasciare un file chiamato app_offline.htm nella radice del proprio sito Web e ASP.NET instraderà automaticamente tutto il traffico verso questa pagina. Questo file può contenere qualsiasi HTML che desideri indicare che il tuo sito è inattivo per un breve periodo a causa della manutenzione.

Per maggiori informazioni si prega di leggere App_Offline.htm and working around the "IE Friendly Errors" feature:

Il modo in cui funziona è che app_offline.htm si inserisce questo file nella directory principale dell'applicazione . Quando ASP.NET lo vede, si sarà shut-down l'applicazione di dominio per l'applicazione (e non riavviarlo per richieste) e invece rispedire i contenuto del file app_offline.htm in risposta a tutte le nuove dinamiche richieste per l'applicazione. Quando il numero ha terminato l'aggiornamento del sito, solo il elimina il file e torna online.

0

Quale versione di ASP.NET? Sono sicuro che ci sono un milione di modi più eleganti per farlo, ma puoi cambiare il documento predefinito in IIS per reindirizzare a Maint.html (o simile).

6

Non esiste una funzionalità integrata di questo tipo in ASP.NET ad eccezione di app_offline.htm che non si adatta perfettamente alle tue esigenze perché anche a te verrà negato l'accesso al sito. Devi crearlo da solo, ma è meglio farlo a livello di router e di bilanciamento del carico che a livello di applicazione. Ovviamente ciò dipenderà dalla tua architettura di rete.

31

desidero evitare di avere un duplicato istanza dell'applicazione web per test.

Questo è il tuo problema proprio lì. Per tutto tranne i siti più banali, dovresti avere un'istanza di sviluppo o di staging. Dovresti utilizzare il controllo del codice sorgente e disporre di uno script per aggiornare l'istanza principale.

+0

Molto buon punto. Qualcosa dovrò considerare quello. Questo progetto mi ha davvero coinvolto in aspetti diversi. :-) – janhartmann

+0

+1 @jskulski. Non penso che questo punto possa essere sottolineato abbastanza. È necessario avere almeno un ambiente stage/UAT che corrisponda il più possibile all'ambiente di produzione. Fai i tuoi errori lì invece della produzione. È ancora meglio avere un ambiente di sviluppo e scriptare le modifiche da lì allo stage. Ciò consente di intercettare i bug di implementazione e consente una distribuzione regolare della produzione. – wcm

+0

Questa sarà la mia soluzione, è meglio controllare il controllo del codice sorgente. Non l'ho mai usato prima. Grazie per avermi indicato in una nuova direzione! Se c'è qualcosa che devo leggere sul controllo del codice sorgente, sarei felice se tu condividessi le informazioni. :-) – janhartmann

2

Oltre a creare una replica di sviluppo del tuo sito Web per creare patch e correzioni, non potresti semplicemente annunciare la chiusura del sito per la manutenzione con diversi giorni di anticipo? Non sono un programmatore web, ma potresti dare un'occhiata a ciò che Hattrick, una popolare gestione del calcio online, fa per mantenere il loro sito.Usano un sistema di notifica sulla home page, dopo l'accesso degli utenti, che annuncia quando verrà effettuata la manutenzione (di solito in tarda notte in Europa dove si trova una grande porzione di giocatori e tutti gli sviluppatori) e chiudono il sito web per un paio d'ore. Quando rimuovono il sito, pubblicano una pagina, usando lo stesso stile del resto del sito, e forniscono una stima di quando verrà ripristinato. Semplice, elegante e, se abbinato al lungo preavviso, sembra fare un buon lavoro placando la base di utenti.

Dare agli utenti un avviso a lungo termine su cui è pianificata la manutenzione programmata e dare loro un'idea di cosa si tratta e la maggior parte delle persone sarà in grado di gestire i tempi di inattività. Niente è più frustrante di andare intenzionalmente a un'app Web che era attiva 10-20 minuti fa per trovarla improvvisamente non disponibile e inattiva per la manutenzione.