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