Qual è il modo corretto di generare numeri casuali in un'applicazione ASP.NET MVC se ho bisogno di un numero esatto per richiesta? Secondo MSDN, per ottenere casualità di qualità sufficiente, è necessario generare più numeri usando un singolo oggetto System.Random, creato una volta. Poiché una nuova istanza di una classe controller viene creata per ogni richiesta in MVC, non è possibile utilizzare un campo privato inizializzato nel costruttore del controllore per l'oggetto casuale. Quindi in quale parte dell'applicazione MVC dovrei creare e memorizzare l'oggetto casuale? Attualmente mi conservarlo in un campo statico della classe controller e pigramente inizializzarlo nel metodo di azione che lo utilizza:Generazione di numeri casuali in applicazioni MVC
public class HomeController : Controller
{
...
private static Random random;
...
public ActionResult Download()
{
...
if (random == null)
random = new Random();
...
}
}
Poiché il campo "random" si può accedere da più istanze della classe controller, è possibile che il suo valore si corrompa se due istanze tentano di inizializzarlo contemporaneamente? E un'altra domanda: so che la durata della statistica è la durata dell'applicazione, ma in caso di un'app MVC che cos'è? Proviene dall'avvio di IIS fino all'arresto di IIS?