2010-02-04 3 views
0

J'utilise un HTTPModule pour effectuer un travail simple en arrière-plan d'une application Web. J'utilise une minuterie similaire à ce qui est décrit dans cet article: Using an HTTPModule to run a Background Service.Existe-t-il un moyen d'appeler une méthode sur un HTTPModule à partir d'une page Web?

Le problème est que le processus de travail ne semble jamais mettre fin à lui seul, si personne ne l'a accédé au site depuis longtemps. Je pense que le problème est que la minuterie n'est jamais arrêtée même après qu'il est clair qu'il n'y a plus de travail à faire. Je peux l'arrêter, pas de problème, mais je ne connais pas un bon moyen de savoir avec certitude quand le redémarrer. Je voudrais avoir une méthode que je peux appeler à partir de la page particulière qui serait le point de départ pour ce processus. Je suppose que je pourrais, alternativement, surveiller BeginRequest pour une URL à utiliser comme déclencheur, mais cela semble kludgy. Je pensais que j'étais là avec quelque chose comme la ligne ci-dessous, mais quelque chose ne va pas et je ne peux pas comprendre. DirectCast(System.Web.HttpModuleCollection.Item("TimerBasedHTTPModule"), TimerBasedHTTPModule).StartPolling()

Suggestions?

Répondre

0

J'étais proche.

Dans ma situation particulière, ce fut le code que je avais besoin:

DirectCast(HttpContext.Current.ApplicationInstance.Modules.Item("TimerBasedHTTPModule"), TimerBasedHTTPModule).StartPolling()

Questions connexes