88 votes

Comment accéder à la méthode HttpServerUtility.MapPath dans un Thread ou un Timer ?

J'utilise un System.Timers.Timer dans mon application Asp.Net et j'ai besoin d'utiliser l'application HttpServerUtility.MapPath qui semble n'être disponible que via HttpContext.Current.Server.MapPath . Le problème est que HttpContext.Current es null lorsque le Timer.Elapsed se déclenche.

Existe-t-il un autre moyen d'obtenir une référence à un objet HttpServerUtility ? Je pourrais l'injecter dans le constructeur de ma classe. Est-ce sûr ? Comment puis-je être sûr qu'il ne sera pas collecté à la fin de la requête en cours ?

Merci !

0voto

Vaibhav Points 7334

Je pense que la raison pour laquelle il est nul à ce moment-là (si vous y réfléchissez), est que l'événement "timer elapsed" ne se produit pas dans le cadre d'une requête HTTP (il n'y a donc pas de contexte). Il est causé par quelque chose sur votre serveur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X