ASP.NET 具有后台工作者的 Web 服务中的轮询服务未继续
本文关键字:服务 继续 NET Web 后台 工作者 ASP | 更新日期: 2023-09-27 18:32:19
我需要在 ASP.NET-WebService中运行轮询服务。现在,我已经用BackgroundWorker
实现了它,我正在Application_Start
HttpApplication
开始。这是有效的。但突然之间,它不会再继续工作了。
现在,我有一个休耕问题:HttpApplication
启动并执行Application_Start
后的生存期是多少?我是否需要在另一个地方实施和运行我的BackgroundWorker
?
BackgroundWorker
不是为您的用例设计的。引自MSDN:
类允许您在 单独的专用线程。
通常 asp.net 应用池配置为在空闲 20 分钟后关闭。这就是我认为在你的情况下正在发生的事情。
你应该开发一个Windows服务。以下是大致相同的简要说明:
Windows 服务使您能够创建长时间运行的可执行文件 在其自己的 Windows 会话中运行的应用程序。这些服务 可在电脑开机时自动启动,可暂停 并重新启动,并且不显示任何用户界面。这些功能使 非常适合在服务器上使用或需要长时间运行的服务 不干扰正在工作的其他用户的功能 在同一台计算机上。
您可以重用所有现有代码。只需根据您的要求定期从此 Windows 服务调用您的 Web 服务即可。就是这样。