Potresti dirmi cosa succede esattamente quando modifichiamo Web.config (in fase di esecuzione) su un server IIS?


11

Potresti dirmi cosa succede esattamente quando modifichiamo Web.config (in fase di esecuzione) su un server IIS.

L'applicazione che dipende da web.config viene riavviata automaticamente? Se sì, è possibile annullare il riavvio automatico (o ricaricare il web.config)?


Potresti provare ad attivare il controllo dell'accesso ai file per vedere se IIS legge o meno il web.config dopo averlo modificato.
Eric H,

Risposte:


10

ASP.NET AppDomain viene riavviato ogni volta che si tocca "web.config". È possibile disattivare la notifica di modifica file (FCN) per una cartella, ma di solito non è la soluzione migliore se puoi aiutarla. Se lo disattivi, significa solo che devi riciclare manualmente il pool di app affinché le modifiche abbiano effetto.

Prima di IIS7, solo le modifiche ASP.NET avrebbero causato il riciclo di AppDomain, ma con IIS7 e molte delle impostazioni presenti in web.config, questo è un problema più comune. ovvero la modifica di un documento predefinito in Gestione IIS 7 farà sì che AppDomain ricicli ora.

Idealmente devi solo mantenere basso il tasso di modifica, o talvolta applicare la modifica ad applicationHost.config (che non causa il riciclo di AppDomain) piuttosto che web.config.


4

L'applicazione che utilizza web.config si riavvierà quando lo cambi, ci sono maggiori informazioni qui:

http://msdn.microsoft.com/en-us/library/ms178473.aspx

Non conosco alcun modo per impedire che ciò accada (e non sono sicuro del motivo per cui vorresti farlo - forse puoi fornire qualche dettaglio in più su ciò che stai cercando di ottenere).



3

[SOLO UNA NOTA]

So che questo è vecchio ma questo merita ancora di essere notato.

Scott Forsyth - La risposta MVP non è corretta.

ASP.NET AppDomain viene riavviato ogni volta che si tocca "web.config".

Questo è sbagliato.


La risposta rapida è la risposta tecnicamente più corretta e completa in quanto include un collegamento a MSDN che include un dettaglio importante:

Quando è richiesto il riavvio dell'applicazione, ASP.NET servirà tutte le richieste in sospeso dal dominio dell'applicazione esistente e dai vecchi assembly prima di riavviare il dominio dell'applicazione e caricare i nuovi assembly.

Ciò è particolarmente importante quando parliamo di servizi web. Questo indica che potrebbe essere ok fare un riavvio di mezzogiorno in modo sicuro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.