在服务器端本身定期运行事件

时间:2011-01-18 09:55:09

标签: asp.net events

我想在服务器端定期运行一个由ASP.NET方案中的服务器启动的事件。客户没有要求。

非常感谢您的帮助。

5 个答案:

答案 0 :(得分:1)

假设您可以访问服务器并可以安装外部应用程序,您可以创建一个独立的Windows Service甚至是由内置Windows Task Scheduler触发的控制台应用程序。

对于在Asp.Net中运行的内容,您可以使用Quartz.netThis如此问题解释了如何将其与Asp.Net一起使用

答案 1 :(得分:0)

您需要使用Process类生成进程。这个过程会一直睡到复发时间。

Process p = new Process();
p.StartInfo.FileName = "foo";
p.Start();

另一种方法是使用Thread类假脱机线程。

答案 2 :(得分:0)

对于某些应用程序中的类似情况,我使用单独的服务(Windows服务/ Web服务)并使用System.Threading.Timer(请参阅http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx)并实现我自己的调度程序。或者,您可以使用任何基于服务器的标准调度程序来调用某些可执行文件,而这些可执行文件又会命中您的服务。

答案 3 :(得分:0)

我只想创建一个标准的命令行可执行文件,并使用Windows Scheduling Tool运行它。 如果它以非常短的间隔运行,那么Windows服务就没问题,但是例如每天一次的任务,我认为这是错误的方法。

答案 4 :(得分:0)

查看Windows Workflow Foundation

该框架是为这类事情构建的,例如状态持久性等。它也是独立运行的,因此当您的应用程序(池)关闭时(默认情况下由于IIS),该过程不会停止。

与asp.net完全整合,你可能最终(以积极的方式)使用Delay Activity