Question

J'ai une classe qui implémente IHttpModule dans un ensemble séparé d'un site Web. La mise en œuvre du module intercepte les demandes et récrit urls pour le site.

Les correspondances sont stockés dans une classe avec l'URL demandée et l'URL de destination.

est le deuxième exemple, MTSingleton, de http://devhood.com/Tutorials /tutorial_details.aspx?tutorial_id=486 adaptée à la création de la liste de cartographie? Y at-il une meilleure approche à partir de la mise en œuvre du module?

Edit: Mon mauvais, ceci est pour IIS 6.0 et .NET 3.5 SP1

Était-ce utile?

La solution

On dirait que vous cherchez à créer les applications objet une fois dans votre cycle d'application. On dirait que vous essayez d'empêcher cela d'être créé à plusieurs reprises par demande. (S'il vous plaît préciser si je me trompe).

Regardez les méthodes sur IHttpModule . En supposant que vous travaillez avec IIS 7.0, le cycle de vie ASP.Net montrera que la méthode Init () est tiré une fois. Signification, il est tiré une fois par cycle de vie de l'application. Alors, lancez le serveur Web, la première demande donnera le coup Init () à la vitesse, les demandes ultérieures ne doivent pas nécessairement ce feu jusqu'à ce que le cycle d'application du serveur Web est actualisé.

Vous devriez être en mesure de se déplacer en toute sécurité votre mappings code de création dans la méthode Init (), qui devrait vous fournir les garanties que vous êtes à la recherche d'un type d'initialisation singleton multi-thread. Vous devriez toujours avoir des garanties multi-thread autour de votre objet de mappage, mais la méthode Init () de IHttpModule si vous donner le feu une fois et done effet que vous êtes à la recherche.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top