ASP.net C# è necessario IIS riavviare quando nuovi DLL copiato la directory BIN

Stiamo ricevendo un problema per il quale ogni volta che copiare una dll nella directory bin, il nostro principale dominio del sito web si ferma, e l’unico modo per riportarlo è il riavvio del “Servizio WWW”.

Si esegue un sito web che contiene un certo numero di applicazioni di IIS in esecuzione su un singolo server in cui ciascuna di queste applicazioni sono configurati per l’esecuzione di diversi pool di applicazioni.

Abbiamo una grande base di codice che contiene oltre 280 pagine aspx tutto il sito. Il nostro principale dominio contiene circa 100 pagine aspx, mentre i sottodomini contenere 15 o 20 ogni.

Quando facciamo una build attualmente siamo la generazione di un sacco di dll che abbiamo copiare manualmente il server di produzione directory bin. Non appena lo facciamo IIS, ovviamente, prende il via una riciclare la compilazione di ciascuna delle pagine aspx e codice sederi. A questo punto, il sito è sostanzialmente ferma (a volte ha bisogno di essere riavviato, riavviare il servizio pubblicazione sul web – per svegliarlo di nuovo).

La cosa curiosa è che questo accade solo quando si distribuisce per il dominio principale applicazione IIS, cioè www. Se si distribuisce un file bin per il sub dominio nello stesso modo, quasi istantaneamente opere.

Anche se faccio un iisreset.exe questo non sembra risolvere il problema.

Paio Di Domande:

  1. Esiste un modo per accelerare il processo corrente in modo che non è necessario riavviare il server?
  2. Ci sarebbe ovvio codice di modifiche o aggiornamenti che sarebbe causando la necessità di un riavvio del servizio (a volte si corre un iisreset, ma questo non sembra riportare in vita)?

Alcune specifiche:

  • Codice è scritto in : C#
  • .net framework : 2.0
  • Server : Windows Web Server 2008
  • iis versione : IIS7
  • Database : MSSQL 2008 Standard

Qualsiasi aiuto sarebbe apprezzato. Grazie in anticipo.

InformationsquelleAutor StacMan | 2011-06-01

 

3 Replies
  1. 12

    Quando si mette un app_offline.htm file nella cartella wwwroot del proprio dominio principale IIS sito va offline. Questo è il comportamento predefinito di IIS, come Scott Gu descritto. Quando si esegue questa operazione tutte le dll può essere tranquillamente sovrascritto. E quando si elimina il app_offline.htm file dell’applicazione per avviare la prossima volta che arriva una richiesta.

    Per saperne di più su app_offline.htm qui e qui.

    Fondamentalmente, se si inserisce un file con questo nome nella directory principale di un’applicazione web directory ASP.NET 2.0 arresto dell’applicazione, scaricare l’applicazione di dominio dal server, e interrompere l’elaborazione di nuove richieste in arrivo per l’applicazione. ASP.NET dovranno rispondere a tutte le richieste per le pagine dinamiche in applicazione di inviare il contenuto del app_offline.htm file (per esempio: si potrebbe desiderare di avere un “sito in costruzione” o “chiuso per manutenzione” messaggio).

    Questo fornisce un modo conveniente per prendere in giù la vostra applicazione mentre si stanno facendo grandi cambiamenti o la copia di un sacco di nuove funzionalità di una pagina (e si vuole evitare il fastidioso problema delle persone di colpire e l’attivazione del sito nel mezzo di un aggiornamento del contenuto). Può anche essere un modo utile per sbloccare immediatamente e scaricare un SQL Express o un database di Access cui .o mdf .mdb file di dati risiedono nella cartella /directory app_data.

    Una volta che si rimuove il app_offline.htm file, la prossima richiesta, in applicazione causerà ASP.NET per caricare l’applicazione e app-dominio di nuovo, e la vita continuerà come di consueto.

    • Quindi il problema principale è causato da blocchi del ddls non sempre rilasciato – e, pertanto, sarà necessario riavviare il servizio, in ogni caso, per ottenere il server di back up?
    • Questo potrebbe essere il problema. Ma il modo giusto per aggiornare la vostra applicazione web in IIS è quello di mettere prima un app_offline.htm nella root e poi aggiornare il sito per evitare di chiusura e di altri problemi simili si hanno. Un iisreset non è necessaria quando si utilizza l’app_offline.htm. Quando si utilizza vs2010 con tfs2010 e fare una versione più recente vs2010 anche mettere un app_offline.htm nella vostra root ed elimina quando tutti i file vengono recuperati, vedere questa domanda in proposito stackoverflow.com/questions/3965346/….
    • Grazie apprezzo l’aiuto che. Io comunque vorrei capire perché è necessario riavviare il sistema e le possibili cause del problema tuttavia, il vostro suggerimento migliorare l’usabilità.
  2. 3

    Per quanto ne so, non è necessario fare iisreset quando si aggiunge una dll nella cartella bin. La dll deve essere caricato automaticamente nel cestino.

    Si dovrebbe fare iisreset quando si aggiunge una nuova dll nella global assembly cache.

    • Questa è un’opzione, ma è più sicuro per impostare un app_offline.htm nella root e poi copiare la dll così anche tutte le possibili esistenti serrature dll rilasciata
    • iisreset non ha intenzione di volare su un server che ospita più siti, per i quali hai cambiato solo uno.
    • Spesso se un iisreset non volare, una applicazione mirata piscina riciclare potrebbe
  3. 0

    Si può smettere di sito web in IIS, senza copiare le dll e poi iniziare di nuovo? Perché non fermare altri siti ospitati nella stessa IIS.

    • Abbiamo provato un paio di volte, ma non ha aiutato. Non necessariamente ottenere quello che stiamo cercando in ogni modo (vale a dire, che spiega perché la distribuzione www richiede il riavvio, mentre i sotto-domini di prendere un paio di secondi per riciclare)

Lascia un commento