Attualmente ho un'applicazione .net mvc3 che è responsabile della gestione di viste simili in più posizioni che utilizzano anche gli stessi controller, ad esempio site1/v1/views/index.cshtml
e site1/v2/views/index.cshtml
.MVC Razor ViewEngine non thread-safe?
Il modo in cui questo viene gestito è la creazione di un CustomControllerFactory che eredita da DefaultControllerFactory e nel metodo CreateController, cancellare i motori di vista esistenti e aggiungere un nuovo viewEngine personalizzato che specifica i formati di visualizzare la posizione in base al largo l'URL corrente.
Se le terre utente sul site1.com/v1/index.cshtml
, il viewengine specificano le posizioni Vista su:
string versionDirectory = "v1";
ViewLocationFormats = new[]{ versionDirectory + "/Views/{0}.cshtml",
"/Views/{0}.cshtml",
"~/Shared/{0}.cshtml"
};
Il problema che sto avendo è che se più utenti atterrano su pagine diverse più o meno allo stesso tempo tutti gli utenti vedrà la stessa vista.
Initially i thought this was related to caching, ma dopo aver impostato esplicitamente usecache = false
nella vista personalizzataEngine, sembra che questo abbia più a che fare con lo ViewEngines class not being thread safe.
Qualcuno ha qualche idea su come posso ottenere lo stesso risultato, ma in un modo diverso?
grazie in anticipo.
non si sa come si sta facendo questo, ma tutti gli oggetti statici sono condivisi tra tutte le richieste - che potrebbe essere correlato al tuo problema ... – Buildstarted