我正在使用httpmodule在Web应用程序的后台做一些简单的工作。我使用的计时器与本文中描述的类似: Using an HTTPModule to run a Background Service.
问题是,如果长时间没有人访问该站点,那么工作进程似乎永远不会自行终止。我认为问题在于,即使很明显没有更多的工作要做,计时器也不会停止。我可以阻止它,没问题,但我不知道一个确定何时重新启动的好方法。我想有一个方法,我可以从特定的页面调用,这将是这个过程的“开始”点。我想我可以,或者,监视beginrequest以使用某个URL作为触发器,但这感觉有些笨拙。
我以为我在那儿有下面这条线,但有些地方不对劲,我想不出来。 DirectCast(System.Web.HttpModuleCollection.Item("TimerBasedHTTPModule"), TimerBasedHTTPModule).StartPolling()
DirectCast(System.Web.HttpModuleCollection.Item("TimerBasedHTTPModule"), TimerBasedHTTPModule).StartPolling()
建议?
我很亲近。
在我的特殊情况下,这就是我需要的代码:
DirectCast(HttpContext.Current.ApplicationInstance.Modules.Item("TimerBasedHTTPModule"), TimerBasedHTTPModule).StartPolling()