ASP.NET 具有后台工作者的 Web 服务中的轮询服务未继续



我需要在 ASP.NET-WebService中运行轮询服务。现在,我已经用BackgroundWorker实现了它,我正在Application_Start HttpApplication开始。这是有效的。但突然之间,它不会再继续工作了。

现在,我有一个休耕问题:HttpApplication启动并执行Application_Start后的生存期是多少?我是否需要在另一个地方实施和运行我的BackgroundWorker

BackgroundWorker不是为您的用例设计的。引自MSDN:

类允许您在 单独的专用线程。

通常 asp.net 应用池配置为在空闲 20 分钟后关闭。这就是我认为在你的情况下正在发生的事情。

你应该开发一个Windows服务。以下是大致相同的简要说明:

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

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

最新更新