Provare a eseguire le distribuzioni di produzione quando ci sono pochi o eventuali utenti online, ad esempio di notte o nei fine settimana. Notifica agli utenti che ci sarà un'interruzione pianificata.
Quando si esegue la distribuzione nell'ambiente di produzione, è possibile creare un file "App_Offline.htm" e inserirlo nella radice del sito Web ASP.NET. ASP.NET riconosce che questo file ha un significato speciale: a tutte le richieste di pagine dinamiche viene mostrata questa pagina invece della pagina richiesta dall'utente. In genere questa pagina visualizza un messaggio amichevole come "Il server è inattivo per la manutenzione di routine. Riprova tra 30 minuti."
Un altro suggerimento per rendere meno dolorose le implementazioni è mantenere il tuo web.config il più simile possibile tra i vari ambienti come Sviluppo, Test e Produzione. Per le cose che devono davvero cambiare nei diversi ambienti, come le stringhe di connessione, è possibile estrarle nel proprio file connectionStrings.config, impostando in web.config.
Per le distribuzioni di database, esistono alcuni ottimi strumenti di terze parti (come ad esempio Teratrax Database Compare per SQL Server) che consentono di confrontare lo schema e/oi dati tra 2 database e produrre uno script SQL che trasferirà il database di destinazione al schema dell'altro database. Se questo funziona per te dipenderà dalle tue esatte pratiche di sviluppo. Se non è possibile utilizzare tali strumenti, è possibile eseguire lo script di ogni modifica del database, quindi riprodurre questi script durante la distribuzione in un ambiente diverso.
Ovviamente si dovrebbe avere un ambiente di prova che è esattamente come la produzione e consente di eseguire tutti i test di accettazione e di garantire che il rilascio sia stabile e che la distribuzione funzioni prima che si realizzi la cosa reale.