使用Backgroundworker的ASP.NET Webservice中的轮询服务不会继续

时间:2013-09-21 16:03:56

标签: c# asp.net web-services httpapplication

我需要在ASP.NET-WebService中运行轮询服务。现在,我已使用BackgroundWorker实现了它,我从Application_Start的{​​{1}}开始。这很有效。但突然之间,它将不再继续工作。

现在,我有一个问题: HttpApplication启动并执行HttpApplication后的生命周期是多少? 我是否要在其他地方实施和运行我的Application_Start

1 个答案:

答案 0 :(得分:2)

BackgroundWorker不适合您的使用案例。引自MSDN

  

BackgroundWorker类允许您对a运行操作   独立的专用线程。

通常配置asp.net应用程序池(默认IIS设置)以在空闲时间20分钟后关闭。我认为这就是你的情况。

你应该开发Windows Service。以下简要说明:

  

Windows服务使您可以创建长时间运行的可执行文件   在自己的Windows会话中运行的应用程序。这些服务   可以在电脑启动时自动启动,可以暂停   并重新启动,并且不显示任何用户界面。这些功能使   适用于服务器或需要长时间运行的服务   功能不会干扰正在工作的其他用户   在同一台计算机上。

您可以重复使用所有现有代码。只需根据您的要求定期从此Windows服务调用您的Web服务。就是这样。