E 'possibile modificare il file web.config senza dare a tutti gli utenti del sito una nuova sessione?È possibile modificare web.config senza terminare tutte le sessioni utente?
risposta
È possibile spostare le parti volatili del web.config in file esterni e quindi impostare IIS di non riavviare le applicazioni quando questi file cambiano.
nell'esempio riportato di seguito, le impostazioni delle applicazioni e la connessione corde sono stati spostati in un altro file, al di fuori del web.config.
<?xml version="1.0"?>
<configuration>
<appSettings configSource="appSettings.config"/>
<connectionStrings configSource="connections.config"/>
</configuration>
Una volta fatto, è possibile apportare modifiche alle impostazioni dell'app (o qualsiasi altra cosa si inserisca nel file esterno) senza modificare web.config.
È anche possibile visitare machine.config e giocare con l'attributo restartOnExternalChanges, ma questo dovrebbe essere usato con cautela in quanto potrebbe avere conseguenze indesiderate. Alcune sezioni, come le impostazioni delle app, hanno già questo set su "false".
<section name="appSettings" restartOnExternalChanges="false">
Ulteriori dettagli sono disponibili in questo OdeToCode article.
Se non si utilizza lo stato di sessione InProc, le sessioni dovrebbero persistere tra i riavvii dell'applicazione.
sessionState Element (incluse le note su come configurare la modalità SqlServer.
Questo funziona bene e non devo cambiare la mia applicazione per utilizzare qualcosa di diverso da InProc. – Espo