ciao,
BlackThunder ha scritto:
ho un'applicazione ASP.NET Web Form e ogni volta che effettuo delle modifiche o correzioni devo ricompilare il progetto e copiare/incollare nella directory
Una facilitazione per te: usa la funzionalità "Publish" che Visual Studio ti mette a disposizione. Ne abbiamo parlato
qui.
Questa, tuttavia, non risolverà il problema. Serve solo ad evitarti le operazioni manuali di copia-incolla.
BlackThunder ha scritto:
come è possibile evitare la compilazione
Se apporti modifiche ai file di codice non puoi evitare la ricompilazione del progetto. Il massimo che ti è concesso di fare è qualche modifica al markup delle pagine (o delle view, se usi ASP.NET MVC) purché tu non abbia scelto di compilare pure quelle.
Secondo me non dovresti combattere contro il riavvio dell'applicazione, perché è inevitabile. Però puoi assicurarti che IIS usi sempre le stesse chiavi di crittografia. Queste chiavi servono a decrittare i cookies di sessione e di autenticazione che sono in possesso dei vari client. E' questo il problema: se per qualche motivo le chiavi cambiano, ASP.NET non sarà più in grado di decifrare i cookies che aveva emesso in precedenza.
Il primo tentativo che farei è quello di impostare le chiavi staticamente, in modo che restino sempre le stesse. Leggi qui:
http://blogs.msdn.com/b/vijaysk/archive/2009/05/13/iis-7-tip-10-you-can-generate-machine-keys-from-the-iis-manager.aspxInoltre, sei hai qualche dato utente conservato in sessione, dovresti usare una modalità diversa da InProc, in modo che quei dati possano sopravvivere ad un riavvio dell'applicazione. Per esempio, potresti usare le modalità StateServer o SqlServer.
http://msdn.microsoft.com/en-us/library/vstudio/ms178586(v=vs.100).aspxQuesto dovrebbe evitare che gli utenti vengano buttati fuori dall'applicazione. Non eviterà che una richiesta fallisca, se viene inviata proprio durante il riavvio dell'applicazione.
BlackThunder ha scritto:
il server si blocca per qualche secondo/minuto
Anche questo è inevitabile, quando si usa un solo server.
Windows Azure, ad esempio, risolve questo problema con una funzionalità chiamata "VIP Swap". In pratica hai due istanze: la prima è quella di produzione e l'altra è quella di staging. Quest'ultima non serve alcuna richiesta, ma è usata giusto come banco di prova. La pubblicazione la fai sul server di staging e, quando hai verificato che tutto funziona e che IIS è pronto a ricevere richieste, allora scambi i ruoli e l'istanza di staging diventa immediatamente quella di produzione (e viceversa).
http://azure.microsoft.com/it-it/documentation/articles/web-sites-staged-publishing/#Swapciao,
Moreno
Modificato da BrightSoul il 28 agosto 2014 10.03 -