在ASP .NET中按照某个时间表执行某些操作

4

我需要在每周一和周日的7点做一些工作。我写了一个可以完成这项工作的Web服务,但我不知道如何在规定的时间执行此Web服务。有人可以帮助我吗?

P.S. 我在Mac OS X上使用Mono和mod_mono。

2个回答

3
在Windows中,您通常会创建一个基于控制台的应用程序来调用Web服务,并将其添加到任务计划程序中。
对于Mac OS X,您可以尝试类似的操作并使用cron。请查看this post

以与在Windows中调用Web服务的方式相同。消费它并调用Web方法。将Web引用添加到控制台应用程序中,指定服务的URL。将创建一个代理包装器。(假设您正在使用Web服务而不是WCF)。 - Michael Shimmins
创建一个C#应用程序,添加服务引用到您的Web服务并进行调用。这里是一篇文章,解释了如何从Visual Studio中添加WCF服务引用。文章链接:http://www.eggheadcafe.com/tutorials/aspnet/a1647f10-9aa4-4b0c-bbd9-dfa51a9fab8e/adding-wcf-service-refere.aspx - Bala R

2
有几种方法可以解决这个问题,但无论采取哪种方法,最好将定时任务运行在Web进程之外。
您可以创建一个简单的控制台应用程序来执行所需的工作,并在Mac OS X上设置cron job(类似于Windows中的Scheduled Tasks)来运行它。或者,您可以使用类似Quartz.Net的工具创建带有时间表的作业,然后在Mac OS上将该进程作为守护进程运行。
两者之间的区别在于守护进程会不断运行,并根据程序定义的时间表执行工作,而控制台应用程序仅在需要时运行,并由诸如cron之类的系统级进程触发。

但是我必须准确地编写Web服务 :( - Siarhei Fedartsou
一个 Web 服务本身无法自行执行任何操作,需要调用它的东西来触发。你需要安排触发它的东西,而不是 Web 服务本身。 - Michael Shimmins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接