在服务器上的后台进程中运行进程

时间:2013-11-28 10:18:57

标签: c# asp.net

嗨,我有一个我需要处理的网站。一旦用户启动过程,它就需要运行直到实时温度数据满足某些条件。该过程可能需要数天才能完成。因此,一旦进程启动,它需要在服务器上连续运行。 我不知道该如何去做。我读到了后台工作者流程,但我不确定自己是否正确。我想用asp.net和C#完成这个,如果可能的话。 谁能让我走上正轨?谢谢

3 个答案:

答案 0 :(得分:1)

ASP.NET不是实现这种长时间运行的后台工作程序的好选择,因为工作进程会偶尔回收一次,以最大限度地减少内存泄漏的影响(取决于配置,可能经常)。
但是,您可以实现在服务器上运行并且独立于Web应用程序的Windows Service。例如,Web应用程序和Windows服务可以通过WCF(或数据库)进行通信。
当然,出于安全原因,可能会禁止在Web服务器上安装服务,因此您应该先检查一下。
与Windows服务相比,更轻量级的替代方法是创建控制台应用程序并通过调度程序定期运行它,如果这也符合您的要求。

答案 1 :(得分:1)

使Windows服务运行后台进程并执行脏工作。 IIS可以重新启动/应用程序池回收,这将阻止您的任务完成。当用户在web(UI部分)中启动进程时,使用进程间通信(tcp或命名管道)来告诉windows服务。

答案 2 :(得分:0)

您可以使用主题:http://msdn.microsoft.com/fr-fr/library/ms173178%28v=vs.90%29.aspx

它们可以同时处理多个操作。