13 messaggi dal 27 giugno 2002
Salve.
Avrei necessità di capire se è possibile aggiornare le route in modo dinamico in un'applicazione WebForms, magari recuperandole da una database senza dover riavviare l'applicazione.
Per adesso ho definito le mie rotte nel file global.asax con il metodo descritto qui:
http://msdn.microsoft.com/it-it/library/cc668177.aspx
Grazie.
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao, sì è possibile, la collezione RouteTable.Routes è statica e accessibile da qualsiasi punto dell'applicazione. Puoi aggiungere e rimuovere le routes a piacimento, e senza dover riavviare l'applicazione per rendere effettivi i cambiamenti.

Fai attenzione: la collezione non è thread-safe perciò è importante evitare che più di un utente vada a scrivere contemporaneamente sulla collezione. Quando invochi il suo metodo MapPageRoute, fallo dopo aver acquisito un lock con GetWriteLock.
Esempio:
//acquisisco un lock che viene mantenuto finché non chiudo il blocco using
using (RouteTable.Routes.GetWriteLock())
{
    //rimuovo una route...
    var daRimuovere = RouteTable.Routes["nomeRoute"];
    if (daRimuovere != null)
        RouteTable.Routes.Remove(daRimuovere);

    //..e la ricreo
    RouteTable.Routes.MapPageRoute("nomeRoute", "percorso", "~/pagina.aspx");
}


Come mai devi modificare le routes durante l'esecuzione, se posso chiedere? Si tratta di una questione SEO? Modificale con cautela, gli utenti potrebbero trovarsi con dei broken links e vedere pagine 404 anziché i contenuti previsti.

ciao
Modificato da BrightSoul il 06 maggio 2012 22.59 -

Enjoy learning and just keep making
13 messaggi dal 27 giugno 2002
Ciao.
Grazie per la soluzione! La provo subito.
In effetti forse mi sono espresso male: gestiamo un cms multiutente/multicliente e per comodità vorremmo gestire le rotte da db, in un livello amministrativo di configurazione dell'applicazione, in modo da non dover intervenire su ogni singolo global.asax di ogni applicazione gestita.
Modificato da Marco75 il 07 maggio 2012 11.07 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.