Domanda

Ho una classe che implementa IHttpModule in un assembly separato da un sito web. L'implementazione del modulo intercetta le richieste e riscrive gli URL per il sito web.

Le mappature sono memorizzati in una classe con l'URL richiesto e l'URL di destinazione.

E 'il secondo esempio, MTSingleton, da http://devhood.com/Tutorials /tutorial_details.aspx?tutorial_id=486 adatto per la creazione della lista mappatura? C'è un approccio migliore da dentro l'implementazione del modulo?

Modifica: Il mio male, questo è per IIS 6.0 e .NET 3.5 SP1

È stato utile?

Soluzione

Sembra che tu stai cercando di creare le mappature oggetto una volta nella vostra ciclo app. Sembra che si sta cercando di evitare che ciò si sta creando più e più volte per ogni richiesta. (Si prega di chiarire se mi sbaglio.)

Guarda i metodi su IHttpModule . Supponendo che si sta lavorando con IIS 7.0, il ciclo di vita ASP.Net mostrerà che il metodo Init () è sparato una volta. Significato, è licenziato una volta per ogni ciclo di vita dell'applicazione. Quindi, accendere il server web, prima richiesta sarà inaugurato Init () in marcia, quindi le richieste successive non hanno bisogno di sparare fino a quando il ciclo di applicazione web server viene aggiornata.

Si dovrebbe essere in grado di muoversi in modo sicuro il codice di creazione mappature nel metodo Init (), che dovrebbe fornire con le garanzie che stai cercando con un tipo multi-threaded Singleton di inizializzazione. Si dovrebbe comunque avere garanzie multi-threaded intorno alla vostra oggetto di mappatura, ma Init del IHttpModule () metodo dovrebbe dare l'effetto fuoco-once-and-done che stai cercando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top