【问题标题】:Polling Service in ASP.NET Webservice with Backgroundworker is not continueing使用 Backgroundworker 的 ASP.NET Web 服务中的轮询服务未继续
【发布时间】:2013-09-21 16:03:55
【问题描述】:
我需要在 ASP.NET-WebService 中运行轮询服务。现在,我用BackgroundWorker 实现了它,我从HttpApplication 的Application_Start 开始。这是有效的。但是突然之间,它不再继续工作了。
现在,我有一个闲散的问题:
HttpApplication 在启动并执行 Application_Start 之后的生命周期是多少?
我是否需要在其他地方实施和运行我的BackgroundWorker?
【问题讨论】:
标签:
c#
asp.net
web-services
httpapplication
【解决方案1】:
BackgroundWorker 不是为您的用例设计的。引用自MSDN:
BackgroundWorker 类允许您在
独立的专用线程。
asp.net 应用程序池通常配置为(默认 IIS 设置)在 20 分钟空闲时间后关闭。我认为你的情况就是这样。
您应该开发一个Windows Service。以下是相同的简要说明:
Windows 服务使您能够创建长时间运行的可执行文件
在自己的 Windows 会话中运行的应用程序。这些服务
可以在电脑开机时自动启动,可以暂停
并重新启动,并且不显示任何用户界面。这些特点使
非常适合在服务器上或需要长时间运行时使用的服务
不会干扰其他正在工作的用户的功能
在同一台计算机上。
您可以重复使用所有现有代码。只需根据您的要求定期从此 Windows 服务调用您的 Web 服务。就是这样。