我需要在ASP.NET-WebService中运行轮询服务。现在,我已使用BackgroundWorker
实现了它,我从Application_Start
的{{1}}开始。这很有效。但突然之间,它将不再继续工作。
现在,我有一个问题:
HttpApplication
启动并执行HttpApplication
后的生命周期是多少?
我是否要在其他地方实施和运行我的Application_Start
?
答案 0 :(得分:2)
BackgroundWorker
不适合您的使用案例。引自MSDN:
BackgroundWorker类允许您对a运行操作 独立的专用线程。
通常配置asp.net应用程序池(默认IIS设置)以在空闲时间20分钟后关闭。我认为这就是你的情况。
你应该开发Windows Service。以下简要说明:
Windows服务使您可以创建长时间运行的可执行文件 在自己的Windows会话中运行的应用程序。这些服务 可以在电脑启动时自动启动,可以暂停 并重新启动,并且不显示任何用户界面。这些功能使 适用于服务器或需要长时间运行的服务 功能不会干扰正在工作的其他用户 在同一台计算机上。
您可以重复使用所有现有代码。只需根据您的要求定期从此Windows服务调用您的Web服务。就是这样。